Сравнение таблиц разных баз данных после миграции - PullRequest
1 голос
/ 21 апреля 2011

Недавно я перенес свой проект из SQLServer 2000 в MySQL 5.2 , используя MySQL инструментарий миграции , хотя в конце миграции отображается сообщение об успешной миграции но я все еще не уверен, были ли данные успешно перенесены или нет, потому что во время миграции в бэкэнде этот инструментарий миграции делал что-то вроде того, что он изменил бит Datatype на крошечный int, этот я заметил, но я не уверен, что еще он делает как У меня есть некоторые конфиденциальные данные, поэтому я хочу со своей стороны убедиться, что миграция действительно успешна или нет в одно и то же время, я не могу сделать это вручную из-за огромного количества данных, есть ли способы, чтобы я мог сравнить таблицы из обоих * База данных 1007 * sqlserver 2000 и база данных Mysql и создание отчета. Под сравнением я подразумеваю сравнение таблицы в целом, включая данные, тип данных, все.

1 Ответ

2 голосов
/ 14 мая 2011

Я сомневаюсь, что есть инструмент для этого, поэтому вам, скорее всего, придется написать свой собственный, и это займет некоторое время.

Первое, что я хотел бы сделать, это написать приложение, которое подключается к обеим базам данных, захватить определения таблиц в памяти и вывести их в файл в порядке имен таблиц.

Затем используйте инструмент сравнения файлов, такой как WinMerge , чтобы проверить различия.Если есть различия, подобные тому, который вы упомянули выше, внесите необходимые изменения в MySQL и сопоставьте данные при необходимости.

После этого я бы изменил одно и то же приложение для циклического просмотра каждой таблицы в базе данных, вернув вседанные в некоторый тип основанного на множестве объекта, который поддерживает операцию UNION.СОЕДИНИТЕ старую таблицу с новой таблицей и проверьте, равно ли количество строк в результате количеству строк в исходной базе данных.Если это так, все значения одинаковы, в противном случае отметьте его для дальнейшей проверки.Скорее всего, это позаботится о большинстве ваших таблиц, и вы можете вручную проверить те, которые не прошли этот тест.

Все другие объекты будут вариациями темы (это более простые объекты, просто текст), но я бы потратил большую часть своего времени на проверку данных.

Надеюсь, это поможет,это будет трудоемкий процесс для вас, как бы вы на него ни смотрели.

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