2011-12-03 2 views
1

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

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

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

ответ

2

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

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

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

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

+1

Я закончил тем, что написал простой конвертер и DSL для документа yaml_db, который может быть полезен другим: https://gist.github.com/1444018 – Schneems

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