課題
ローカルで動作していたcredentialがCapistranoで展開した本番環境で動作せず30分程詰まったのでメモ。
ローカルコンソールの出力
irb(main):002:0> Rails.application.credentials.slack
=> {:token=>"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
本番コンソールの出力
irb(main):002:0> Rails.application.credentials.slack
=> nil
結論
credential を操作する以下コマンドをdevでしか実行していなかったことが原因。
ローカルのCredential変更
$ EDITOR="vi" bin/rails credentials:edit
この操作だけだと config/credentials/production.yml.enc が変更されないため、
config/credentials/production.key を反映させても意味が無い。
以下のとおり、本番のcredentialも変更してpushして解決。
本番のCredential変更
$ EDITOR="vi" bin/rails credentials:edit -e production
分かれば大した話では無いのですが、ローカルはdevの分だけ操作すると言う先入観からつい忘れていました。
credentialの動作をあまり理解していなかったことが露呈した恥ずかしい詰まりでした。