Недопустимый DATABASE_URL при использовании нескольких сред Heroku - PullRequest
3 голосов
/ 09 января 2012

Я пытаюсь сделать этот урок от Heroku.

http://devcenter.heroku.com/articles/multiple-environments

Однако, когда я пытаюсь выполнить эту команду:

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:

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
rake aborted!
Invalid DATABASE_URL
(erb):9:in `rescue in <main>'
(erb):6:in `<main>'
/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:in `database_configuration'
/app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.1.3/lib/active_record/railtie.rb:68:in `block (2 levels) in <class:Railtie>'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_load_hooks.rb:42:in `each'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'
/app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.1.3/lib/active_record/base.rb:2190:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.1.3/lib/active_record/railties/databases.rake:6:in `block (2 levels) in <top (required)>'
/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:in `block in execute'
/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:in `invoke_with_call_chain'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:176:in `block in invoke_prerequisites'
/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_prerequisites'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:157: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:in `invoke_with_call_chain'
/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:in `block (2 levels) in top_level'
/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:in `block in top_level'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/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 `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/bin/rake:19:in `load'
/app/.bundle/gems/ruby/1.9.1/bin/rake:19:in `<main>'
Tasks: TOP => db:migrate => db:load_config

Кто-нибудь здесь имеет подобный опыт? Большое вам спасибо.

Ответы [ 3 ]

5 голосов
/ 12 апреля 2013

Была такая же проблема, и, наконец, понял это. Вот шаги, которые я использовал, чтобы заставить это работать:

  1. Тип heroku config --remote REMOTE_NAME (или --app APP_NAME). Обратите внимание, что DATABASE_URL не установлен.
  2. Для приложений, в которых DATABASE_URL не установлен, добавьте дополнение базы данных Postgres, набрав heroku addons:add heroku-postgresql:dev --remote REMOTE_NAME
  3. Сделайте добавленную базу данных Postgres базой данных по умолчанию для приложения, набрав heroku pg:promote DB_NAME_FROM_STEP_2 --remote REMOTE_NAME, где DB_NAME_FROM_STEP_2 имеет форму HEROKU_POSTGRESQL_COLOR_URL (с COLOR, похожим на RED или GREY)

И это все! Не забудьте выполнить heroku run rake db:migrate --remote REMOTE_NAME после нажатия, чтобы перенести базу данных Heroku.

Ссылки:

1 голос
/ 02 мая 2012

Попробуйте запустить

heroku config

Вы увидите список производственных переменных конфигурации.Если вам не хватает переменной DATABASE_URL, это ваша проблема.Вам необходимо добавить базу данных.Чтобы получить маленький бесплатный, запустите

heroku addons:add shared-database

Более подробную информацию здесь: https://devcenter.heroku.com/articles/database#troubleshooting или Приложение Heroku упало, получая «Неверный URL базы данных» при попытке загрузить rake db: migrate

1 голос
/ 09 января 2012

ваша команда должна быть

heroku rake db:migrate --app <HEROKU APP NAME>

, как в «Моих приложениях».

Я никогда не использовал флаг --remote, всегда --app, который отлично работает. Не уверен, что это опечатка в их статье.

ОБНОВЛЕНИЕ: Похоже, что --remote использует удаленное имя git, которое вы настроили для этого приложения, но лично я не использовал это, но знаю, что --app работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...