SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

Search Consoleのサイトの所有権を確認する方法【AWS Lightsail】

前提

  • AWS Lightsail
    • ワードプレス
  • GoogleDomain -> Squarespace

解決方法

Search Consoleの「未確認」になっているドメインを選択する

手順がでてくるので、TXTの情報をコピーする。

AWS Lightsail上の「ドメインとDNS」タブを左のメニューから探してクリック。

「レコードの追加」をする

  • TXT
  • 応答する部分にコピペ
  • ホストの部分は「@」のみにする

以上で所有権が確認とれます。

渋谷駅から成田空港への最適解

旅が好きな自分にとって、安く、楽に空港まで着く方法というものは非常に重要である。

最近は渋谷駅あたりに住んでいるので、空港にいくとなると、渋谷が起点となる。

羽田はかなり近く、安くいけるのでよいのだが、成田は別である。

(羽田は京急線で700円ほど, 40分ぐらい)

成田どうするねん問題

遠い、遠いのである。

2時間から2時間半の覚悟が必要であり、体力でカバーできるものの

着いたら疲れてたり、帰りは根性が必要になることが多い。

また、そもそも旅費として空港まで2000円かかってしまったりして、往復4000円って高いやないかい、

それなら羽田で乗るわ!ってなりかねない。

そこで探すことにした

最適解は東京駅からのバス

今ところ見つけた最適解は、東京駅からバスにのる、である。

TYO-NRT【公式】│エアポートバス東京・成田

1300円でバスで1時間らしい。なんてこった、めっちゃいいじゃないか。

どういうバスなのかはわからないけど、座れるだろうし、これはいい。

しかも1300円は安い。

渋谷から東京駅までが200円ちょいなので、合計で1500円ほど。

電車は安くても1250円ほどなので、差額250円であれば許容できる。

それで座れて荷物ももたなくていいなら、なおさらである。

リムジンバスもある

リッチピーポーには、渋谷駅からリムジンバスもでているようである。

こちらは2500円。

ちょっと高い。

成田エクスプレスなどもあるが、3200円ぐらいらしい。

金があれば、これが最強で1時間ほどでつくようである。

東京駅までなら許容できそう

ちょっと渋谷から東京駅は20分ほどはかかりそうであるが、我慢はできそうである。

そのあと1時間は座れて、空港まで行ってくれるならアリである。

1300円でIC決済ならそのまま乗れるらしく、クレジットなら事前に売り場で買うようだ。

なかなか良い方法を見つけられたと思う。

ローチケの認証を楽天モバイルでする方法

AnyPassに引き続き、こちらでも認証がうまく進まなかったので、ノウハウとして残す

楽天Linkの電話を利用する

前提として、楽天モバイルの契約タブの中身の状態は以下の記事のスクショと同じ。

https://sakurawi.hateblo.jp/entry/any-pass

認証で利用される

050-3184-0271

に楽天Linkで電話をかける。

その際に、ローチケの「電話認証をする」とタップして立ち上がってくる電話番号とそれに続く8桁の番号をメモしておく。

楽天リンクで通話後、そのまま8桁の数値を入れる。

すると認証が開始されるので、 4桁の番号を電話で伝えられるので、 そのまま4桁、そしてシャープを押す。

すると認証されてアプリに戻るとログインされた状態にできる。

Railsの個人アプリを 6から7にver アップする

元の状態

ruby '3.3.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.1.4.1'
gem 'rails', '7.1.3'

にしていく

$ bundle update rails

無事完了

続けてこちら

bundle exec rails app:update

こんな感じで上書きするか でてきます

$ bundle exec rails app:update
    conflict  config/boot.rb
Overwrite /Users/sakurawi/workspace/XXX/config/boot.rb? (enter "h" for help) [Ynaqdhm] y
       force  config/boot.rb
       exist  config
    conflict  config/application.rb

修正部分

基本上書きでよさそう

config/environments/development.rb の以下の部分のみ戻した。

    config.time_zone = 'Tokyo'
    config.active_record.default_timezone = :local
    config.i18n.default_locale = :ja
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]

上記は i18nも含んでいる

あと以下も足した

    config.load_defaults 7.0

にして動かしてみたら、動く

master.keyがなくしていたので再発行...

credentials.ymlを削除して、 EDITOR=vim rails credentials:edit を実行

jsが動かない

importmapに寄せてみる

bin/bundle add importmap-rails
$ bin/rails importmap:install
       apply  /Users/sakurawi/.gem/gems/importmap-rails-2.0.1/lib/install/install.rb
  Add Importmap include tags in application layout
      insert    app/views/layouts/application.html.erb
  Create application.js module as entrypoint
      create    app/javascript/application.js
  Use vendor/javascript for downloaded pins
      create    vendor/javascript
      create    vendor/javascript/.keep
  Ensure JavaScript files are in the Sprocket manifest
      append    app/assets/config/manifest.js
  Configure importmap paths in config/importmap.rb
      create    config/importmap.rb
  Copying binstub
      create    bin/importmap
         run  bundle install
Bundle complete! 27 Gemfile dependencies, 109 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

jsの読み込みあたりはこの辺で行えそう。

zenn.dev

https://zenn.dev/yama525/articles/8537244b477059

で、動くことができた。

jsのpacksとか、余分なものを消したい

app/views/layouts/application.html.erb の不要なの消せそう

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
    <%= stylesheet_pack_tag "application", "data-turbo-track": "reload" %>
    <%= javascript_importmap_tags %>

<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> を消して、

<%= stylesheet_link_tag "tailwind", "inter-font", "data-turbo-track": "reload" %>

で対応させる

importmap的に、 アプリトップ配下に 以下の空フォルダが必要っぽい。

stackoverflow.com

結論

jsがうまく読み込まれない。

heroku,HTTP2が対応してないらしく、 importmapでのjsの読み込みができないかも。

Rails製の個人アプリのruby を 2.7.5から上げる

ruby --version
ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [arm64-darwin22]

$ rails -v
Rails 6.1.4.7

さすがに、ということで(herokuもEOLだしサポート対象外。。)

まずrubyインストール

$ rbenv install -l
3.0.6
3.1.4
3.2.2
3.3.0
jruby-9.4.5.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.1.1
truffleruby+graalvm-23.1.1
$ rbenv install 3.3.0
$ rbenv local 3.3.0

上記で .ruby-versionが切り替わる。

railsなどを動かしていく

まずgemfileを変える

gemfileの

ruby '3.3.0'

を書き換え。

bundle update

installではエラー。

Resolving dependencies...
nokogiri-1.15.5-arm64-darwin requires ruby version >= 2.7, < 3.3.dev, which is incompatible with the current version, 3.3.0

.

rails server がエラー

ruby/3.3.0/psych/visitors/to_ruby.rb:432:in `visit_Psych_Nodes_Alias': Alias parsing was not enabled. To enable it, pass `aliases: true` to `Psych::load` or `Psych::safe_load`. (Psych::AliasesNotEnabled)

qiita.com

対処

gem "psych", "~> 3.3"

いったんさげた。 yamlの場所も消したりしたけど動かない。うーん。

いったん動く状態にできたのであげていく

test部分があるともっと対処が必要、かつ検知できると思われます。

herokuのclearDBが容量限界そうなのでMySQL5.7を8にあげてみる

経緯

herokuのエラーで何度か storage errorが出ていた。

接続すると、エラー画面になっていて、操作が効かない感じ。

エラーの内容から、おそらく、DBの容量の問題と思う。

けど、中身をcsvでダンプすると100MBほどしかないのだが...

とりあえず、herokuのプラン更新をしようにも、5.7はもうサポートされていないようなので、今のうちにやっておくことにした。punchプランのClearDBでした。

経験値にもなるだろうし、いずれ容量増えたら必要なことなので、やることにした。

まず手元から

qiita.com

brew update

brew install mysql

をする。

==> Summary
🍺  /opt/homebrew/Cellar/mysql/8.3.0: 323 files, 312.5MB

とのこと。入ってそう。

ということで、手元で8が起動するか試していく。

$ ps ax | grep mysql
 5157 s001  S+     0:00.00 grep mysql
sakurawi@Wi-MacBook-Air: ~/workspace/XXX_APP (master *=)
$ mysql --version
mysql  Ver 14.14 Distrib 5.7.44, for osx10.18 (x86_64) using  EditLine wrapper
sakurawi@Wi-MacBook-Air: ~/workspace/XXX_APP (master *=)
$ mysql --version
mysql  Ver 14.14 Distrib 5.7.44, for osx10.18 (x86_64) using  EditLine wrapper
sakurawi@Wi-MacBook-Air: ~/workspace/XXX_APP (master *=)
$ brew uninstall mysql@5.7
Uninstalling /opt/homebrew/Cellar/mysql@5.7/5.7.44_1... (321 files, 233.9MB)
sakurawi@Wi-MacBook-Air: ~/workspace/XXX_APP (master *=)

消えないので、アンインストールした

$ mysql --version
mysql  Ver 8.3.0 for macos13.6 on arm64 (Homebrew)

お、よさそう。

$ mysql.server start
Starting MySQL
 SUCCESS!

スタートもできるぽい。

railsを動かしていく

rails serverすると当然動かない。

bundle updateしてみる

rails server する。 お、起動するぞ。

え、ぜんぜんうごくやん。

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.44    |
+-----------+
1 row in set (0.00 sec)

いや変わってなさそう。

$ mysql.server restart
Shutting down MySQL
.... SUCCESS!
Starting MySQL
.... SUCCESS!

リスタートさせてみる

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.3.0     |
+-----------+
1 row in set (0.00 sec)

mysql>

お、切り替わった。

rails consoleからもみてみる

[1] pry(main)> ActiveRecord::Base.connection.execute('SELECT version()').to_a
   (0.1ms)  SELECT version()
=> [["8.3.0"]]

いいやん。

sequel Proが見れなくなる。 ググる。

MySQL8.0.x に Sequel Pro で接続する #MySQL - Qiita

なんと、夜版じゃないと8.0がみれないとのこと。 なんじゃそら。

ローカルは秒で動くようになったので、 じゃ、pushしてみる。

herokuのプランを変える

というか、mysql 8に対応したアドオンを付け直す。

新しくインスタンスを置くイメージかな。

新しい方のDBのデータみたい。

が、heroku configを叩いても、繋いでいる方がでる。 まあ当然すな。

あ、

$ heroku addons


Add-on                              Plan    Price         Max Price    State
──────────────────────────────────  ──────  ────────────  ───────────  ───────
cleardb (cleardb-horizontal-00000)  punch   ~$0.014/hour  $9.99/month  created
 └─ as CLEARDB_DATABASE

cleardb (cleardb-fitted-999999)      punch8  ~$0.014/hour  $9.99/month  created
 └─ as CLEARDB_ONYX

でてましたわ。

情報を

heroku config:set DATABASE_URL='mysql2://username:password@hostname/database_name?reconnect=true'

でupdateする

他のdbの環境変数も、向くように変更。

herokuで rails db:createする

D, [2024-02-22T05:06:39.800007 #2] DEBUG -- :    (18.1ms)  CREATE DATABASE `heroku_bdd258af7170eb8` DEFAULT CHARACTER SET `utf8mb4`
Database 'heroku_bdd258af7170eb8' already exists
ActiveRecord::StatementInvalid (Mysql2::Error: Table 'heroku_bdd258af7170eb8.users' doesn't exist):

となるので、migrateする。

無事走る。

動いた!

データをインポートする

ローカルにダンプしておいてものをエクスポート、

すぐに本番DBにインポートする

だいじょうぶそう

個人アプリなので、以上でよさそう。

ただ、デフォルトの文字コードなどの問題はありそうなので、その辺もチェックをしておく。

その後

異常がなければ、add-onは消してしまってよさそう。

自動採番

なぜか、 3になっている。

mysql> SHOW VARIABLES LIKE 'auto_increment_increment';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 3     |
+--------------------------+-------+
1 row in set (0.19 sec)

なおす。

前に10になっていたのは、直接イジってつじつまを勝手にあわせてくれた説。

今回、3じゃないと最後のものと称号したときにおかしいからか。

いや、と思ったけど、デフォっぽいので、放置することにする。

参考URL

https://zenn.dev/hiro1111/articles/bf0111ed763485

ActionView::Template::Error (undefined method `total_pages' for #<User::ActiveRecord_Relationのエラー対処方法

初歩的なkaminariのエラーですが。

ActionView::Template::Error (undefined methodtotal_pages' for #<User::ActiveRecord_Relation`

でのエラーが indexのメソッドで出ちゃうな、という時。

    if params[:user_id]
      @users = User.where(xxx_user_id: params[:user_id]).page(params[:page])
    else
      @users = User.all.order(id: :desc).page(params[:page]).per(50)
    end

こういうケースの場合です。

indexで検索すな、ということはあるかもしれませんが、 簡易実装の時はやりたい時が多いはず。

ともあれ、 .per()を忘れると、 total_pagesが呼ばれなくなってしまうので、そこです。

複数件返る想定で考えたら、当たり前でした。