Ruby on rails 使用Heroku多个环境时,数据库URL无效
我正试着从Heroku开始做这个教程 但是,当我尝试执行此命令时:Ruby on rails 使用Heroku多个环境时,数据库URL无效,ruby-on-rails,deployment,heroku,Ruby On Rails,Deployment,Heroku,我正试着从Heroku开始做这个教程 但是,当我尝试执行此命令时: heroku rake db:migrate --remote staging 我得到了这个错误: rake aborted! Invalid DATABASE_URL Tasks: TOP => db:migrate => db:load_config (See full trace by running task with --trace) 使用--trace: 调用数据库:迁移(第一次) **调用环境(
heroku rake db:migrate --remote staging
我得到了这个错误:
rake aborted!
Invalid DATABASE_URL
Tasks: TOP => db:migrate => db:load_config
(See full trace by running task with --trace)
使用--trace:
调用数据库:迁移(第一次)
**调用环境(第一次)
**执行环境
**调用数据库:加载配置(第一次)
**调用rails_env(第一次)
**执行rails_env
**执行db:load\u config
雷克流产了!
无效的数据库URL
(雇员再培训局):9:in“rescue in”
(雇员再培训局):6:in`'
/usr/ruby1.9.2/lib/ruby/1.9.1/erb.rb:753:in'eval'
/usr/ruby1.9.2/lib/ruby/1.9.1/erb.rb:753:in'result'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.1.3/lib/rails/application/configuration.rb:106:在“数据库配置”中
/app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.1.3/lib/active\u record/railtie.rb:68:in“block(2层)in”
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active\u support/lazy\u load\u hooks.rb:36:in'instance\u eval'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active\u support/lazy\u load\u hook.rb:36:in'execute\u hook'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active\u support/lazy\u load\u hooks.rb:43:in`block in run\u load\u hooks'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active\u support/lazy\u load\u hooks.rb:42:在'each'中
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active\u-support/lazy\u-load\u-hooks.rb:42:in'run\u-load\u-hooks'
/app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.1.3/lib/active\u record/base.rb:2190:in`'
/app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.1.3/lib/active\u record/railties/databases.rake:6:in'block(2层)in'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in'call'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:在“执行中的块”中
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in'each'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in'execute'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in`block in invoke_with_call_chain'
/usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in'mon_synchronize'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:“使用调用链调用”
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:176:in`block in invoke_前提条件'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:174:in'each'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:174:in“invoke_前提条件”中
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:157:'block in invoke_with_call_chain'
/usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in'mon_synchronize'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:“使用调用链调用”
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in'invoke'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:116:in'invoke_task'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:在“顶层的块(2层)”中
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in'each'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:在“顶级块”中
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:在“标准异常处理”中
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:88:“顶级”
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:66:在“运行中的块”中
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:在“标准异常处理”中
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in'run'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in`'
/app/.bundle/gems/ruby/1.9.1/bin/rake:19:in'load'
/app/.bundle/gems/ruby/1.9.1/bin/rake:19:in`'
任务:TOP=>db:migrate=>db:load\u config
这里有人有类似的经历吗?非常感谢。您的命令应该是
heroku rake db:migrate --app <HEROKU APP NAME>
heroku rake db:migrate--app
与“我的应用”中显示的相同
我从来没有使用过--remote
标志,总是使用--app
,效果很好。不确定他们的文章中是否有错别字
更新:看起来--remote使用您为该应用程序设置的git remote名称,但我个人没有使用过,但我知道--该应用程序可以工作。尝试运行
heroku config
您将看到生产配置变量的列表。如果缺少DATABASE\u URL
变量,那就是问题所在。您需要添加一个数据库。要得到小的免费的,运行
heroku addons:add shared-database
更多信息请点击这里:或者说,也有同样的问题,并最终解决了。以下是我用来让它工作的步骤:
--app-app\u NAME
)。请注意,未设置数据库URLheroku addons:add heroku-postgresql:dev--remote-remote\u-NAME
DB_NAME_FROM_STEP_2
的形式为heroku POSTGRESQL_COLOR_URL
(颜色类似于红色或灰色)heroku运行rake db:migrate--remote remote_NAME
参考资料:
heroku addons:add shared-database