Как преобразовать базу данных из Sqlite3 в Mysql с несовместимой схемой, используя Ruby - PullRequest
1 голос
/ 04 декабря 2011

Я работаю с проектом, который переходит от sqlite к mysql. К сожалению, схема отдельных таблиц несколько изменилась, и оптовый импорт не будет работать. Есть ли хорошие инструменты или решения для этого?

В настоящее время я использую ruby ​​на рельсах 3.0.10. Мое лучшее предположение состояло в том, чтобы начать сеанс консоли, использовать активные адаптеры записей с пространством имен для подключения к обеим базам данных, а затем скопировать все элементы в коде.

(исходная база данных довольно мала, т. Е. Менее нескольких тысяч строк на таблицу)

1 Ответ

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

Что может быть проще всего - это экспортировать базу данных Sqlite в формате, который можно напрямую загрузить обратно в MySQL, а затем создать миграции, которые изменят схему по мере необходимости, начиная со структуры Sqlite и корректируя ее оттуда.

Один из инструментов, который вы можете попробовать, это yaml_db , чтобы вывести одну базу данных в YAML-файлы в стиле фикстуры, а затем загрузить ее обратно на другую сторону.

Помните, что ваш schema.rb файл должен быть достаточно независимым от базы данных, чтобы позволить вам rake db:create при переключении определения database.yml адаптера.

Возможно, вы захотите создать отдельную среду для предыдущей структуры, добавив новую запись в database.yml и config/environments, чтобы вы могли переключаться назад и вперед без необходимости постоянно взламывать несколько разных конфигурационных файлов.

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