我将Rails应用程序从5.1.6更新到了5.2.1,之前我们使用的是secrets
。我们想切换到credentials
,因为它应该替换secrets
。我想知道几件事:
1)是否有“讽刺”的方式来做到这一点?我知道我可以编辑secrets
并将内容复制到credentials
,但是我不确定这是否是正确的方法,因为我找不到任何可谈论的内容这个。另外,我尝试从secrets.yml.enc
复制加密的内容并将其粘贴到credentials.yml.enc
,但这没有用,并且在加密方面遇到了一些问题。
2)关于第一点,我是否应该仍然可以在5.2.1中使用secrets
?我以为credentials
应该代替secrets
,所以令我惊讶的是我仍然可以使用secrets
并且所有测试都通过了。
感谢您提供任何信息或帮助!
答案 0 :(得分:0)
备份您的config / secrets.yml。通过新的Rails搭建临时的Vanilla Rails 5.2.1项目。将config / master.key和config / credentials.yml.enc从其中复制到您现有的Rails项目中。例如在Ubuntu中通过以下方式编辑这些凭据:
EDITOR="gedit --wait" bin/rails credentials:edit
从旧的secrets.yml中替换secret_key_base(首选新的平面格式,在所有环境中都是可选的),并/或将您需要的其他任何内容作为机密信息粘贴并保存。删除config / secrets.yml和临时的Rails项目。访问代码中的秘密,例如通过:
Rails.application.credentials.secret_key_base
确保升级的Rails 5.1.6项目使用config / environments / *。rb中的主密钥:
Rails.application.configure do
...
config.require_master_key = true
...
end
重新启动Rails服务器。不要忘记.gitignore和.dockerignore config / master.key!