【问题标题】:Rails publify error when running rake db:migrate db:seed on heroku在heroku上运行rake db:migrate db:seed时Rails发布错误
【发布时间】:2015-01-20 21:40:29
【问题描述】:

当我在 heroku 上为我的 rails publify 博客运行 rake db:migrate db:seed 时出现此错误

rake aborted!
ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key
/app/vendor/bundle/ruby/2.0.0/gems/fog-core-1.27.3/lib/fog/core/service.rb:244:in `validate_options'
/app/vendor/bundle/ruby/2.0.0/gems/fog-core-1.27.3/lib/fog/core/service.rb:268:in `handle_settings'
/app/vendor/bundle/ruby/2.0.0/gems/fog-core-1.27.3/lib/fog/core/service.rb:98:in `new'
/app/vendor/bundle/ruby/2.0.0/gems/fog-core-1.27.3/lib/fog/storage.rb:25:in `new'
/app/vendor/bundle/ruby/2.0.0/gems/carrierwave-0.10.0/lib/carrierwave/uploader/configuration.rb:83:in `eager_load_fog'
/app/vendor/bundle/ruby/2.0.0/gems/carrierwave-0.10.0/lib/carrierwave/uploader/configuration.rb:96:in `fog_credentials='
/app/config/initializers/carrierwave.rb:2:in `block in <top (required)>'
/app/vendor/bundle/ruby/2.0.0/gems/carrierwave-0.10.0/lib/carrierwave/uploader/configuration.rb:118:in `configure'
/app/vendor/bundle/ruby/2.0.0/gems/carrierwave-0.10.0/lib/carrierwave.rb:14:in `configure'
/app/config/initializers/carrierwave.rb:1:in `<top (required)>'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/dependencies.rb:241:in `load'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/dependencies.rb:241:in `block in load'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/dependencies.rb:232:in `load_dependency'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/dependencies.rb:241:in `load'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/engine.rb:648:in `block in load_config_initializer'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/notifications.rb:161:in `instrument'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/engine.rb:647:in `load_config_initializer'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/engine.rb:612:in `block (2 levels) in <class:Engine>'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/engine.rb:611:in `each'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/engine.rb:611:in `block in <class:Engine>'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/initializable.rb:30:in `instance_exec'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/initializable.rb:30:in `run'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/initializable.rb:55:in `block in run_initializers'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/initializable.rb:44:in `each'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/initializable.rb:44:in `tsort_each_child'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/initializable.rb:54:in `run_initializers'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/application.rb:300:in `initialize!'
/app/config/environment.rb:5:in `<top (required)>'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/dependencies.rb:247:in `require'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/dependencies.rb:247:in `block in require'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/dependencies.rb:232:in `load_dependency'
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.9/lib/active_support/dependencies.rb:247:in `require'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/application.rb:276:in `require_environment!'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.9/lib/rails/application.rb:405:in `block in run_tasks_blocks'

我已经根据 publify 的 github 页面上的说明在终端中为 AWS 设置了这些参数 - https://github.com/publify/publify

我错过了什么?

【问题讨论】:

  • 您是如何在本地设置 aws_access_key_idaws_secret_access_key 参数的?您提到您将它们设置在终端中。您是否将它们设置为环境变量?
  • heroku config:set provider=AWS aws_access_key_id= "我的访问密钥 ID" aws_secret_access_key= "我的秘密访问密钥" aws_bucket= "存储桶名称"
  • 你能确认它们已经设置好了吗?运行heroku config,看看变量是否设置好了。
  • 这是我的载波初始化器的样子github.com/nerboda/myblog/blob/master/config/initializers/…
  • 它应该列出应用环境变量的键值对。运行以下命令以添加 AWS 凭证:heroku config:set AWS_ACCESS_KEY_ID=PasteTheKeyInHereNoQuotesheroku config:set AWS_SECRET_ACCESS_KEY=PasteTheSecretKeyHereAlsoNoQuotes。然后确认这些设置,运行heroku config,你应该看到两者都列出了。最后,在终端中运行heroku run console 并输入ENV['AWS_ACCESS_KEY_ID'],您应该会看到您在上一步中添加的键的值。然后,重新运行迁移。

标签: ruby-on-rails heroku amazon-web-services carrierwave publify


【解决方案1】:

运行以下命令以添加 AWS 凭证:heroku config:set AWS_ACCESS_KEY_ID=PasteTheKeyInHereNoQuotesheroku config:set AWS_SECRET_ACCESS_KEY=PasteTheSecretKeyHereAlsoNoQuotes。然后,要确认这些设置,运行heroku config,您应该会看到两者都列出了。最后,在终端中运行heroku run console 并输入ENV['AWS_ACCESS_KEY_ID'],您应该会看到您在上一步中添加的键的值。然后,重新运行迁移。

【讨论】:

    猜你喜欢
    • 2016-07-27
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多