Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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 使用Heroku多个环境时,数据库URL无效_Ruby On Rails_Deployment_Heroku - Fatal编程技术网

Ruby on rails 使用Heroku多个环境时,数据库URL无效

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开始做这个教程

但是,当我尝试执行此命令时:

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

更多信息请点击这里:或者说,

也有同样的问题,并最终解决了。以下是我用来让它工作的步骤:

  • 键入heroku config--remote-remote\u NAME(或
    --app-app\u NAME
    )。请注意,未设置数据库URL
  • 对于未设置数据库URL的应用程序,通过键入
    heroku addons:add heroku-postgresql:dev--remote-remote\u-NAME
  • 通过键入heroku pg:promote DB_NAME_FROM_STEP_2--remote remote_NAME,使新添加的Postgres数据库成为应用程序的默认数据库,其中
    DB_NAME_FROM_STEP_2
    的形式为
    heroku POSTGRESQL_COLOR_URL
    (颜色类似于红色或灰色)
  • 就这样!在您按下按钮以迁移heroku数据库之后,不要忘记执行一个
    heroku运行rake db:migrate--remote remote_NAME

    参考资料:


    你好,John,感谢您的快速响应,我尝试了您的解决方案,但仍然出现错误:(
    heroku addons:add shared-database