Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 升级到rails 5.2后如何获取rails master.key_Ruby On Rails_Ruby_Heroku_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 升级到rails 5.2后如何获取rails master.key

Ruby on rails 升级到rails 5.2后如何获取rails master.key,ruby-on-rails,ruby,heroku,ruby-on-rails-5,Ruby On Rails,Ruby,Heroku,Ruby On Rails 5,所以我把我正在开发的一个应用升级到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/

所以我把我正在开发的一个应用升级到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

您必须生成master.keycredentials.yml.enc。要执行此操作,只需运行以下命令:

run EDITOR=vim rails credentials:edit
(作为编辑器,您可以使用其他工具,例如atom或nano)

在打开的编辑器中,您可以键入凭据并保存它。Rails使用master.key对凭证进行加密。您可以在这里找到更多信息:

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

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

有几件事。从我个人的经验来看,我已经将几个Rails应用程序升级到了5.2,并且我能够在没有此功能的情况下部署到Heroku。所以我不认为这是必要的


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

您可以使用以下命令生成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
添加config/master.key以存储主加密密钥:
将其保存在您的团队可以访问的密码管理器中。
如果您丢失了密钥,那么包括您在内的任何人都无法访问任何使用该密钥加密的内容。
创建config/master.key
忽略config/master.key,这样它就不会出现在Git历史记录中:
append.gitignore

请查看官方文档:

您好,感谢您的帮助,我在日志中添加了导致崩溃的原因。这有用吗?谢谢。我肯定会运行
rake应用程序:update
。这看起来像是与ActiveStorage有关的一般性错误。可能您的初始值设定项没有更新,或者您缺少一些较新的初始值设定项?我运行了该命令,但仍然出现相同的错误。如果是我的初始值设定人,我能做些什么来修复它?非常感谢。您还需要在
config/environments/production.rb