Мне нужно сравнить и синхронизировать несколько схем базы данных MySQL. Мне не нужно синхронизировать данные. Любые отличия отсутствовали бы в таблицах или полях в старых схемах.Сравнение нескольких схем
Я могу написать VBA для этого. Я имел в виду следующие действия:
SHOW TABLES
for each table
SHOW CREATE TABLE {tablename}
Compare this to each other schema
If table doesn't exist, then create it.
If it does exist but different then do a DESCRIBE TABLE TO GET THE FIELDS
Loop though each field to find missing one then do an ALTER TABLE to add it
В настоящее время есть 54 DBs с 106 таблицами каждый.
Поскольку новейшая БД будет иметь текущую схему, мне придется сравнивать ее только с БД. Что я хочу знать, если я делаю это самым эффективным способом. Или есть лучший способ? Сторонние инструменты также являются опцией, если они могут быть автоматизированы.
Благодаря
В случае, если вы хотите знать некоторые фон:
Каждых базы данных стоит месячного биллинговых данных, что мой клиент делает сложный анализ. Анализ выполняется в MS Access с большим количеством запросов и VBA. Доступ прилагается к 1 месяцу за раз и имеет код для переключения месяцев по мере необходимости.
Схемы могут выйти из синхронизации, когда мой клиент добавляет таблицу или поле в новую БД, чтобы помочь в его анализе. Когда он это делает, он вручную делает те же самые моды в предыдущих БД (предыдущие БД все еще используются месяцы и даже годы спустя), но иногда пропускает один, плюс это требует много времени.
Любые внешние ключи между столами? –
Хороший вопрос. Нет, нет. Тем не менее, множество индексов. –