Инструмент для автоматической синхронизации структуры таблиц MySQL
Инструмент предназначен для синхронизации изменений в структуре базы данных с онлайн-базы на локальную среду.
Поддерживаемые функции:
go get -u github.com/hidu/mysql-schema-sync
Для настройки синхронизации источника и адресата рекомендуется использовать файл конфигурации config.json. В нём также можно настроить отправку уведомлений по электронной почте при возникновении ошибок или изменениях в структуре таблицы.
По умолчанию инструмент не удаляет дополнительные таблицы, поля, индексы и внешние ключи. Если необходимо удалить поля, индексы или внешние ключи, можно использовать параметр -drop.
Пример конфигурации (config.json):
{
//source:синхронизация источника
"source":"test:test@(127.0.0.1:3306)/test_0",
//dest:база данных для синхронизации
"dest":"test:test@(127.0.0.1:3306)/test_1",
//alter_ignore:поля и индексы, которые игнорируются при синхронизации
"alter_ignore":{
"tb1*":{
"column":["aaa","a*"],
"index":["aa"],
"foreign":[]
}
},
// tables: таблица для проверки схемы, по умолчанию все. например :["order_*","goods"]
"tables":[],
//получатель уведомлений при изменениях или ошибках
"email":{
"send_mail":false,
"smtp_host":"smtp.163.com:25",
"from":"xxx@163.com",
"password":"xxx",
"to":"xxx@163.com"
}
}
Описание параметров json:
mysql-schema-sync -conf mydb_conf.json -sync
mysql-schema-sync -conf mydb_conf.json 2>/dev/null >db_alter.sql
bash check.sh
Каждый файл конфигурации соответствует отдельной базе данных, и скрипт check.sh выполняет их последовательно. Журнал хранится в текущем каталоге log.
Добавьте задачу в crontab:
30 * * * * cd /your/path/xxx/ && bash check.sh >/dev/null 2>&1
mysql-schema-sync [-conf] [-dest] [-source] [-sync] [-drop]
Объяснение:
#mysql-schema-sync -help
-conf string
имя файла конфигурации
-dest string
источник mysql, например test@(127.0.0.1:3306)/test_0
-drop
удалять ли лишние поля и индексы на локальной стороне, по умолчанию нет
-source string
база данных для синхронизации, например: test@(10.10.0.1:3306)/test_1
если этот параметр указан, параметр -conf будет проигнорирован
-sync
синхронизировать ли изменения с базой данных, по умолчанию нет
-tables string
таблицы для проверки и синхронизации, оставить пустым для всех таблиц
например: product_base, order_*
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )