геройские грабли дб: перенести грабли прервано!невозможно открыть базу данных - PullRequest
0 голосов
/ 12 апреля 2011

Я в настоящее время пробираюсь через учебник по 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.lock и переделал мою команду установки пакета и rake db: migrate. Я все еще получаю ту же ошибку.

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

Ответы [ 3 ]

2 голосов
/ 14 апреля 2011

Убей его!

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

Я закончил тем, что уничтожил свое приложение heroku

heroku destroy

, а затем создайте новый, вставьте новую копию и запустите

heroku create
git push heroku master
heroku rakedb:migrate

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

group :production do
  gem "pg"
end

и добавьте config / database.yml в ваш файл .gitignore для хорошей меры.

0 голосов
/ 27 апреля 2011

Была такая же проблема ... с интерфейсом Heroku ... побежал: геройские грабли дб: мигрировать - трассировка

и обнаружил, что проблема в фейкере, а не в его обнаружении ... Так как 'фейкер' в нашем Gemfile загружен в группу разработчиков, я также загрузил его в производственную группу. сохраненный Gemfile комплектация мерзавец добавить. git commit -m "исправил фейкер" мерзавец гит герой пуш герои грабли дб: мигрировать геройские грабли дб: заселить

теперь все работает ... ВОПРОС, что теперь делать со 100 пользователями на моем производственном сайте? По крайней мере, я могу продолжить учебник Хартла !!

0 голосов
/ 12 апреля 2011

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

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

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