#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!!