heroku rake db: перенос rake прерван! не удается открыть базу данных

#ruby-on-rails #postgresql #heroku

#ruby-on-rails #postgresql #heroku

Вопрос:

В настоящее время я просматриваю руководство по Ruby on Rails по адресуhttp://ruby.railstutorial.org / и я пытаюсь перенести базу данных demo_app в heroku.

 heroku rake db:migrate
    rake aborted!
    unable to open database file
  

Я читал в других сообщениях stackoverflow, что некоторые люди исправили это, введя

 group :production, :staging do
  gem "pg"
end

group :development, :test do  
  gem "sqlite3-ruby", "~> 1.3.0", :require => "sqlite3"
end
  

в файле gemfile. Я также ввел это в свой gemfile, а затем удалил свой старый gemfile.заблокируйте и переделайте мою установку пакета И команду rake db: migrate. Я все еще получаю ту же ошибку.

Очевидно, что я совершенно новичок в ruby, rails и heroku, но я понимаю, что проблема, похоже, в том, что я использую sqlite локально и postgresql в рабочей среде (на heroku). Должен ли я теперь установить этот postgresql на свой компьютер, а затем повторно перенести базу данных? Боюсь, я не смогу извлечь гораздо больше пользы из руководств (или из самого ruby on rails), если я не смогу использовать heroku.

Комментарии:

1. Вы пробовали запустить: heroku rake db:migrate --trace , чтобы посмотреть, есть ли еще какие-либо подсказки относительно ошибки?

Ответ №1:

Убейте это!

У меня была такая же проблема, и я не нашел решений. Я думаю, что то, что мы делаем в этих руководствах, приводит нас к искажению файла database.yml, который генерирует heroku.

В итоге я уничтожил свое приложение heroku

 heroku destroy
  

а затем создаем новую, загружаем свежую копию и запускаем

 heroku create
git push heroku master
heroku rakedb:migrate
  

На этот раз все сработало нормально! Просто убедитесь, что у вас есть драгоценный камень pg в вашем gemfile для производства

 group :production do
  gem "pg"
end
  

и добавьте config/ database.yml в ваш файл .gitignore тоже для пущей убедительности.

Ответ №2:

или, если локально все работает нормально, выполните heroku db: push, чтобы волшебным образом поместить вашу локальную базу данных sqlite в базу данных postgresql Heroku.

Я всегда работаю с одной и той же платформой DB локально, просто чтобы не столкнуться с какими-либо различиями (обычно только когда вы начинаете выполнять SQL, специфичный для DB), поэтому я также запускаю Postgresql локально.

Комментарии:

1. Я некоторое время искал и не могу понять, как использовать postgre в качестве моего собственного / локального sql. Как бы я это сделал?

2. На Mac вы могли бы использовать MacPorts или HomeBrew, а затем установить Postgres. В прошлый раз, когда я смотрел, Homebrew установил PostGresql9, но если вы просто используете общую базу данных Heroku, я думаю, вы хотите использовать Postgres 8.3. flux88.com/2010/06/installing-postgresql-for-rails-on-mac-os-x это хорошее место для начала.

3. Я использую Windows. Я установил postgres, но я думаю, что мне нужно определить это в gemfile, и я не могу найти, как это сделать.

4. gem ‘pg’ — но, боюсь, у меня нет опыта работы с Windows

5. Большое спасибо за вашу помощь. Все еще не работает с heroku, но я думаю, что пока я просто буду беспокоиться о своем локальном сервере. Слишком глубокое разочарование ! 🙂 Еще раз спасибо, Джон.

Ответ №3:

Возникла та же проблема … с интерфейсом Heroku… запуск: heroku rake db: перенос —трассировка

и обнаружил, что проблема связана с faker, который не найден…Поскольку ‘faker’ в нашем Gemfile загружен в группу разработки, я также загрузил его в производственную группу. сохраненный пакет Gemfile устанавливает git add. git commit -m «исправил подделку», git push git heroku push heroku rake db: перенос heroku rake db: заполнить

теперь все работает…теперь вопрос в том, что делать со 100 пользователями на моем производственном сайте? По крайней мере, я могу продолжить с руководством Hartl!!