Перенос данных из Rails на БД MySQL в Postgres SQL для использования с Heroku - PullRequest
7 голосов
/ 02 ноября 2011

У меня есть приложение RAILS 3.x, разработанное локально с использованием MySQL, в котором есть данные, которые необходимо перенести. Теперь я хочу развернуть в Heroku, который использует Postgresql, а также передавать данные.

Проблема заключается в работе со столбцами с данными NULL, которые не нравятся процессу импорта.

Я пытался использовать несколько различных стратегий, таких как

  1. гем yaml_db - не удается импортировать вообще
  2. rails-backup-migrate gem - не нравится закодированный элемент NULL;
  3. taps - не удается выполнить импорт без особой детализации

Кто-нибудь пробовал какие-либо другие стратегии, драгоценные камни или методы? Должен ли я начать сначала с локальной базы данных Postgresl?

спасибо заранее грант

Ответы [ 2 ]

2 голосов
/ 24 декабря 2011

Стоит ли начинать сначала с локальной базы данных Postgresl?

Heroku рекомендует использовать Postgres для локальной разработки.

Ваша продукция и разработкасреда должна быть как можно ближе к идентичной.Это предотвращает трудность диагностики ошибок, вызванных тонкими различиями между средами.Каждое приложение на Heroku поставляется с базой данных PostgreSQL в качестве базы данных SQL по умолчанию.Поэтому вы должны также использовать PostgreSQL для вашей локальной базы данных разработки.(http://devcenter.heroku.com/articles/rails3)

Быстрый поиск обнаружил следующее:

http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#MySQL

Удачи!

0 голосов
/ 13 октября 2013

У меня тоже была эта проблема, и нашел эту жемчужину в блоге .

В нем говорится, что вы можете использовать gem called Valkyrie для переноса данных из базы данных MySQL в базу данных PostgreSQL. Вам просто нужно установить гем, используя gem install valkyrie, а затем использовать эту команду:

valkyrie mysql://datachomp@localhost/seppuku?password=QuickAndPainless postgres://datachomp@127.0.0.1/seppuku 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...