サーバーA Rails4 で稼働しているシステムを Rails6化しサーバーBで稼働させる
という作業をしています。
databaseを dump restoreしてlogin試行したところ、loginできないという症状がでました。
サーバーB上で同じ文字列に「パスワード変更」するとloginできます。
変更前後で encrypted_passwordを比較すると変わっています。
このことから 暗号化時の seed(若しくはdigestアルゴリズム)が変わってしまったのか?と考えています。
手順は次のようにしています
サーバーA Rails4
↓
ローカル(development環境) Rails4 → Rails6
* config/initializers/devise.rb の config.secret_keyをサーバーAに合わせることで login可能となった
↓
サーバーB Rails6
* config/initializers/devise.rb はローカルのものと同じものをdeployしているが loginできない
同じdumpをrestoreして、ローカルではloginでき、サーバーBでは出来ない というのも理解出来ずにいます。
seedらしきもの 以下は 3つのシステムで一致させています
- config/initializers/devise.rb の config.secret_key
- config/master.key
- config/secrets.yml の secret_key_base:
production: と developmentのsecret_key_baseは異なる値だが各々3サーバーで一致
config/credentials.yml.enc は Rails4にはなかったので、そのままにしてあります。
サーバーA、ローカル と サーバーBで異なるのはどのあたりが原因かわかりますでしょうか
- サーバーA AWS 古いLinux。
rails (4.2.11.3),
ruby 2.6.6p146
devise (4.7.3)
- サーバーB AWS 新しいLinux
rails (6.0.3.7)
ruby 2.6.7p197
devise (4.8.0)
- ローカル
rails (6.0.3.7)
ruby 2.6.7p197
devise (4.8.0)
あなたの回答
tips
プレビュー