У меня есть несколько (старых) Drupal-сайтов, которые нужно заменить одним новым приложением Rails. Этот новый сайт должен содержать весь старый Drupal-контент. Этот старый Drupal-контент частично поврежден (из-за почти 7 лет безуспешных обновлений, прекращенных модулей и т. Д.). Тот факт, что это Drupal, вряд ли имеет значение, просто тот факт, что он вызывает некоторые несоответствия, странное именование и плохо нормализованные таблицы.
Контент, который необходимо импортировать в приложение Rails, прост: контент (записи в блоге), прикрепленные файлы (изображения) и комментарии. У меня есть такая роскошь, что две базы данных являются «устаревшими» (не в производстве), а еще две находятся в производстве, но могут отключиться / заблокироваться на некоторое время (часы, дни). Таким образом, миграции не нужно оптимизировать по скорости или полностью сохранять (что означает: я могу позволить себе потерять опубликованный комментарий во время выполнения миграции)
Приложение Rails (3) в основном готово и использует только соглашения об активных записях.
Из-за ограничений (сломанная, несогласованная база данных, несколько баз данных, нуждающихся в слиянии) я предпочитаю писать миграции для этого, вместо того, чтобы подключать мое новое приложение Rails к некрасивой, несовместимой устаревшей базе данных.
Мои вопросы:
- Существуют ли какие-либо среды, жемчужины или инструменты, которые упрощают импорт в Rails: например, что-то, что позволяет простое сопоставление старого и нового в некотором DSL.
- Или проще написать мои миграции полностью на SQL: SQL-запросы, которые превратят старые данные в структуру, подходящую для приложения Rails? Миграция осуществляется с MySQL-> MySQL.
- Или мне просто подключить Activerecord к старым базам данных, перебрать каждую строку / результат и запустить Object.save! в моем приложении рельсов?