Heroku建议不要使用名为
然而,我想知道如何将这种做法与Rails 6加密凭据功能结合起来。加密凭据支持多个环境,因此我们可以将
我想要的是
保持所有不同的凭据上传并更新(包括生产、暂存和所有开发人员)很麻烦,加密文件似乎是一个非常必要的改进;我只是弄不清如何让暂存使用非生产凭据。
PS:也许可以根据在赫鲁晓克设置的环境变量来覆盖文档中的
staging
的自定义环境,而是建议在production
环境下使用不同的ENV
变量集。这很有道理(请看这个问题)。然而,我想知道如何将这种做法与Rails 6加密凭据功能结合起来。加密凭据支持多个环境,因此我们可以将
development
和production
凭据分开;但是,使用Heroku的建议意味着production
凭据将在实际的生产服务器和实际的暂存服务器之间共享。这是我不想看到的。我想要的是
staging
服务器在production
环境中使用development
凭据!保持所有不同的凭据上传并更新(包括生产、暂存和所有开发人员)很麻烦,加密文件似乎是一个非常必要的改进;我只是弄不清如何让暂存使用非生产凭据。
PS:也许可以根据在赫鲁晓克设置的环境变量来覆盖文档中的
config.credentials.content_path
以指示是否使用生产或开发凭证。好奇其他人正在做什么或可能会做什么。
application.rb
中,您还可以设置key_path
,以便在开发环境中测试PIPE_ENV=staging rails c
或PIPE_ENV=staging rails s
也能正常工作。而Rails.application.config.credentials.content_path
实际上可以简化为config.credentials.content_path
。 - fcatuhemodule MyAppName class Application < Rails::Application … if ENV["PIPE_ENV"].present? config.credentials.key_path = Rails.root.join("config/credentials/#{ENV['PIPE_ENV']}.key") config.credentials.content_path = Rails.root.join("config/credentials/#{ENV['PIPE_ENV']}.yml.enc") end end end ``` - fcatuhe