【问题标题】:How to get rails master.key after upgrading to rails 5.2升级到 rails 5.2 后如何获取 rails master.key
【发布时间】:2019-06-21 22:18:09
【问题描述】:

所以我已将我正在开发的应用程序升级到 rails 5.2,但它在 Heroku 上崩溃了。我认为这是因为我的 /config 文件夹中没有 master.key 文件。我仍然拥有上一个 rails 版本的 secrets.yml 文件。我该怎么做才能解决这个问题? 谢谢!

heroku 日志中的错误:

2019-01-28T21:07:46.922561+00:00 app[web.1]: /app/vendor/bundle/ruby/2.5.0/gems/aws-sdk-s3-1.30.1/lib/aws-sdk-s3/bucket.rb:684:in `extract_name': Cannot load `Rails.config.active_storage.service`: (ArgumentError)
2019-01-28T21:07:46.922573+00:00 app[web.1]: missing required option :name

【问题讨论】:

    标签: ruby-on-rails ruby heroku ruby-on-rails-5


    【解决方案1】:

    您必须生成 ma​​ster.keycredentials.yml.enc。为此,只需运行以下命令:

    run EDITOR=vim rails credentials:edit
    

    (作为编辑器,您可以使用其他东西,例如 atom 或 nano)。

    在打开的编辑器中,您可以输入凭据并保存。 Rails 使用 ma​​ster.key 来加密凭证。更多您可以在这里找到:https://medium.com/cedarcode/rails-5-2-credentials-9b3324851336

    要使加密凭证在 Heroku 上工作,您可以从 master.key 复制密钥并使用它来设置 RAILS_MASTER_KEY environemnt 变量。您可以通过 Heroku Dashboard 或 Heroku CLI 实现这一点,如下所示:

    $ heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
    

    【讨论】:

    • 你还需要在config/environments/production.rb中设置config.require_master_key = true
    【解决方案2】:

    有几件事。从我个人的经验来说,我已经将几个 Rails 应用程序升级到 5.2,并且没有这个功能我已经能够很好地部署到 Heroku。所以我认为不一定如此。

    如果您可以运行 heroku logs --tail --app <your app name> 并向我们展示您的应用程序失败的原因的堆栈跟踪,那肯定会有所帮助。

    【讨论】:

    • 您好,感谢您的帮助,我在日志中添加了似乎导致崩溃的原因。这有帮助吗?
    • 谢谢。我肯定会运行rake app:update。这看起来像是一个与 ActiveStorage 有关的一般错误。也许您的初始化程序没有更新,或者您缺少一些较新的初始化程序?
    • 我运行了命令,但仍然出现相同的错误。如果它是我的初始化程序,我该怎么做才能修复它?谢谢!
    【解决方案3】:

    您将能够使用以下命令生成 master.key 文件:

    $ EDITOR=vim rails credentials:edit
    

    它的示例输出如下:

    Adding config/master.key to store the master encryption key: <YOUR_MASTER_KEY>
    
    Save this in a password manager your team can access.
    
    If you lose the key, no one, including you, can access anything encrypted with it.
    
          create  config/master.key
    
    Ignoring config/master.key so it won't end up in Git history:
    
          append  .gitignore
    

    请查看官方文档:https://github.com/rails/rails/blob/master/railties/lib/rails/commands/credentials/USAGE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-14
      • 2020-01-15
      • 1970-01-01
      • 2022-11-10
      • 2019-04-17
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多