2013-09-13 2 views
1

У меня возникли проблемы с переносом данных в приложение heroku, которое имеет Postgresql в качестве базы данных для моего размещенного сайта (Production). На моем сайте разработки у меня есть рельсы 3.2.13 с Sqlite3 как база данных. Я следил за Ruby on rails Tutorial by Michael HartlМиграция данных и схемы от разработки до производственных рельсов heroku

Я использовал git push heroku, чтобы обновить свой сайт в heroku. Я также хочу обновить базу данных вместе с данными. Но heroku run rake db:migrate мигрирует схему, а не данные. Я попытался db:push передавать данные Heroku, но я получаю ошибку

dependency.rb in 'to_specs' :Could not find sequel (~) 3.20.0

также я искал и нашел, что я должен сначала мои SQLite данные dump.sql, а затем запустить

heroku pg:psql HEROKU_POSTGRESQL_COLOR --app app_name < file.sql, как ответил https://stackoverflow.com/questions/15371394/... , но это не удалось с the local psql command could not be located

, пожалуйста, сообщите мне, что я делаю неправильно. или то, что является правильным способом обновления heroku postgresql с моими данными разработки sqlite3.

Спасибо заранее

+1

Для этого связанного ответа вам нужно установить psql (инструмент командной строки клиента Postgres). Вы в Windows, Mac или Linux? –

+0

Я на окнах. позвольте мне загрузить инструмент Postgres и проверить. –

+0

У меня такая же ошибка после установки инструмента для postgresql :( –

ответ

1

Это не является хорошей идеей, чтобы заполнить производственную базу данных с данными, которые у вас есть сейчас в базе данных Developement. Потому что, если у вас возникнут проблемы с вашей производственной базой данных в будущем, и вам нужно снова ее пополнить, ваша разработка db может измениться (например, отброшена), и вы не сможете это сделать снова.

Для этой цели Rails предоставляет семена в файле db/seeds.rb. Вы должны создать все необходимые объекты.

Затем, когда вы нажимаете свой код на Heroku, Heroku собирается подготовить базу данных, создать схему и засеять ее. Если вам нужно занести db вручную, вы можете запустить bundle exec rake db:seed, если вы хотите запустить его в Heroku: heroku run bundle exec rake db:migrate

Смежные вопросы