Необходимо изменить сценарий dbmaintain для обработки изменения синтаксиса MySQL - PullRequest
1 голос
/ 24 января 2011

Мы используем dbmaintain, чтобы помочь автоматизировать поддержку таблиц sql в нашем проекте веб-сервиса. Я только что столкнулся с хитрой проблемой, когда обновление до версии 5.5.8 mysql привело к изменению синтаксиса, которое сломало существующий скрипт из-за использования 'type', где теперь 'engine' требуется в команде 'create_table'. 1001 *

Обычно, без dbmaintain было бы довольно просто исправить это, так как синтаксис 'engine' будет работать на более старых версиях mysql. Однако в мире dbmaintain изменение инкрементного скрипта запрещено. Есть ли чистый, приемлемый способ решения этой проблемы в рамках ограничений dbmaintain? Я имею в виду просто удалить существующий скрипт и вставить тот, который имеет правильный синтаксис - получается, что скрипт более или менее независим от других в своей папке, поэтому не имеет значения, в каком порядке он запускается .

1 Ответ

0 голосов
/ 07 июля 2012

Если вы хотите вручную настроить этот сценарий и убедиться, что DbMaintain его игнорирует, вам следует обновить таблицу DB_MAINTAIN обновленными хэшами.Самый простой способ сделать это - взять новый хеш и обновить столбец CHECKSUM.Вам также может понадобиться поиграться со столбцом FILE_LAST_MODIFIED_AT.

Вы можете получить обновленную контрольную сумму из таблицы DB_MAINTAIN, работающей в базе данных "с нуля".

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