Ccy*_*yan 5 ruby-on-rails ruby-on-rails-5.1 ruby-on-rails-5.2
我将我的 Rails 应用程序从 5.1.6 更新到 5.2.1,我们secrets之前使用过。我们想切换到,credentials因为它应该替换secrets. 有几件事我想知道:
1)有没有一种“Railsy”的方式来做到这一点?我知道我可以编辑secrets并将内容复制到 ,credentials但我不确定这是否是正确的方法,因为我找不到任何关于此的内容。另外,我尝试从中复制加密的内容secrets.yml.enc并将其粘贴到,credentials.yml.enc但这不起作用,遇到了一些加密问题。
2)关于第一点,我应该还能secrets在5.2.1中使用吗?我以为credentials应该更换,secrets所以我很惊讶我仍然可以使用secrets并且我的所有测试都通过了。
感谢您提供任何信息或帮助!
备份您的 config/secrets.yml。通过 Rails new 搭建一个临时的普通 Rails 5.2.1 项目。将 config/master.key 和 config/credentials.yml.enc 从其中复制到现有的 Rails 项目。例如在 Ubuntu 中通过以下方式编辑这些凭据:
EDITOR="gedit --wait" bin/rails credentials:edit
Run Code Online (Sandbox Code Playgroud)
从旧的secrets.yml中替换secret_key_base(首选新的平面格式,对于所有环境都是可选的)和/或将您需要的任何其他内容作为秘密粘贴到其中并保存。删除 config/secrets.yml 和临时 Rails 项目。访问代码中的秘密,例如通过:
Rails.application.credentials.secret_key_base
Run Code Online (Sandbox Code Playgroud)
确保升级后的 Rails 5.1.6 项目使用 config/environments/*.rb 中的主密钥:
Rails.application.configure do
...
config.require_master_key = true
...
end
Run Code Online (Sandbox Code Playgroud)
重新启动 Rails 服务器。不要忘记 .gitignore 和 .dockerignore config/master.key!
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |