Миграция через загрузку снапшота

После успешной борьбы со скриптом миграции vBulletin и наблюдения за тем, как процесс миграции уже идет 36 часов, при этом осталось перенести несколько миллионов сообщений…

Если нет существующего контента Discourse или связей данных, которые нужно сохранить, есть ли какие-либо причины, по которым существующий форум, не являющийся Discourse, нельзя было бы мигрировать, сгенерировав резервную копию SQL-снимка Discourse напрямую из данных исходной базы данных?

Нам пришлось бы написать скрипт почти с нуля, но он был бы высокоуровнево похож на существующие скрипты миграции. Скрипт извлекал бы данные из исходной базы данных, преобразовывал их по мере необходимости* и создавал плоские дампы данных для каждой целевой таблицы Discourse, которые можно было бы использовать для сборки эквивалента резервной копии Discourse. По сути, вывод скрипта внедрялся бы в резервную копию пустого экземпляра Discourse.

  • Вышеупомянутое скрывает огромный объем работы, но есть ли какие-либо серьезные препятствия, которые я упускаю? Поскольку мы можем использовать все существующие идентификаторы данных из источника (id темы, id потока и т. д.), я не думаю, что этап преобразования требует хранения значительного объема состояния, но, возможно, я ошибаюсь в этом. Похоже, что основная работа логики миграции будет заключаться в вызовах базы данных к исходной базе данных.

По сути, именно это делает скрипт массового импорта. Насколько я знаю, для vBulletin такой скрипт существует. Вам придется начинать с нуля, и мне пока не удалось успешно его запустить, но если у вас есть другой сервер, попробуйте запустить его там, пока текущий импорт продолжается.

@zogstrip и @gerhard, где сейчас находится код импортера больших объемов данных на GitHub?

Это находится в директории скрипта импорта.