Синхронизация структуры двух БД

sokol

Zavolga.Net
Синхронизация структуры двух БД

Кто-то давно спрашивал про синхронизацию структуры двух БД. Я тут написал кое-что для внутреннего использования, работает через web-интерфейс.

Возможности:
- Полная синхронизация структуры двух БД включая последовательность полей, комментарии к таблицам, индексы, и формат таблицы
- Возможность предпросмотра SQL перед выполнением операции по синхронизации
- Возможность произвести синхронизацию по логическим именам. Например имеем в одной базе данных таблицы с префиксами work_, devel_, а все что после префикса одинаковое и необходимо синхронизовать devel_ таблицы с work_.

Пока не синхронизируются foregin key для InnoDB.
Архив лежит тут:
http://cms.e-logic.ru/content/download/dbsync.zip

-~{}~ 14.03.05 12:43:

Ссылка на страницу MyDBSync
http://cms.e-logic.ru/content/materials/index70-65.html
 

Arikon

Новичок
Клева, только вчера думал написать такой самостоятельно.
Спасибо.
 

Demiurg

Guest
sokol
а в чем приемущества перед стандартными средствами репликации mysql ?
 

confguru

ExAdmin
Команда форума
Re: Синхронизация структуры двух БД

Автор оригинала: sokol
Пока не синхронизируются foregin key для InnoDB.
Архив лежит тут:
http://cms.e-logic.ru/content/download/dbsync.zip
Ссылка на страницу MyDBSync
http://cms.e-logic.ru/content/materials/index70-65.html
Перенес в продвинутых - давно собирался написать такую же..

-~{}~ 21.03.05 21:54:

а в чем приемущества перед стандартными средствами репликации mysql
Репликация - это другое - а это тулза для
синзронизации полей в таблицах..
 

Вложения

sokol

Zavolga.Net
Demiurg
Репликация это полная синхронизация данных по журналам. А MyDBSync делает синхронизацию логической структуры двух БД, т.е. данные тут не при чем.

Простой пример. Ты к примеру постоянно работаешь над одним проектом, который уже реально наполнен и работает. В один прекрасный момент решили добавить что-то к проекту, появились новые таблицы + изменились структуры существующих (добавились связи, индексы и.т.д). Получается тебе надо вручную поменять определения всех таблиц! А если забудешь создать какое-то поле?

Я сначала пробовал вести журнал изменений в EMS MySQL Manager, но из него по любому приходится выбирать нужные запросы вручную.

Потом где-то пол года назад slashпосоветовал мне SQLyog, это уже было почти, то что нужно в этой проге классный синхронизатор как структуры так и данных. Есдинственное неудобство это, то что приходилось выкачивать дамп структуры работающей БД, выполнять его локально, потом производить сравнение структуры и полученный в результате SQL выполнять на работающей базе.
 

slach

Новичок
;) SQLyog действительно в плане синхронизации более или менее приличен, это наверное единственное его достоинство по сравнению с http://www.sqlmanager.net

в принципе, если объеденить функциональность HTTP Tunnel через proxytunnell + ssh port forwarding + SQLyog
можно попробовать все сделать в автоматическом режиме

есть еще третий путь
IMHO идеологически более правильный

Проектирование и хранение физической структуры базы хранить в CASE средстве - CASEStudio или Sybase Power Designer, в разных версиях
после сравнимать разные версии
и генерить ALTER TABLE ... скрипты... опять же в CASE средстве

правда все равно придется напильником там настраивать все
 
Сверху