мы используем Flyway с 1 месяца без каких-либо проблем.
Но сегодня я попытался добавить новый скрипт миграции, который очень длинный (более 1500 строк) и столкнулся со странной синтаксической ошибкой MySQL.
Я открыл этот скрипт в MySQL Workbench и не сообщил о синтаксической ошибке, скрипт выполнился без ошибок.
Этот сценарий с именем «V10012__insert-acceptance-testing-event-moment-passed.sql» содержит следующие инструкции.
- ВСТАВИТЬ оператор 1
- ВСТАВИТЬ оператор 2
- ...
- ВСТАВИТЬ оператор ПОСЛЕДНИЙ - 1
- ВСТАВЬТЕ оператор ПОСЛЕДНИЙ
Ошибка, о которой сообщает MySQL, следующая:
[ОШИБКА] Вызвано com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с «INSERT INTO video_feedback (id, youtube_video_id) VALUES ( 1102, /* id */» в строке 232 [ОШИБКА] com.googlecode.flyway.core. миграции.MigrationException: Миграция на версию 10012 не удалась! Пожалуйста, восстановите резервные копии и откатите базу данных и код!
Об ошибке сообщается в операторе INSERT инструкция LAST.
Но если я инвертирую «оператор INSERT LAST» и «оператор INSERT LAST — 1» в моем сценарии, об ошибке будет сообщено в «операторе INSERT LAST — 1» (который сейчас находится в конце файла). Таким образом, у меня нет ошибки в операторе INSERT LAST, потому что Flyway выполнил его успешно.
Кроме того, если теперь я полностью удалю оператор «ВСТАВИТЬ оператор ПОСЛЕДНИЙ» из сценария «V10012_insert-acceptance-testing-event-moment-passed.sql» и помещу этот оператор в новый файл с именем «V10013_test.sql' flyway успешно выполняет все мои сценарии миграции!
Итак, в чем может быть проблема в моем первоначальном сценарии «V10012__insert-acceptance-testing-event-moment-passed.sql»?
Возможно ли ограничение размера скрипта?
Вот полезная информация о моей среде:
- В моих сценариях используется много /* */ комментариев
- Плагин Flyway Maven 1.7
- Мавен 2.0.3
- mysql: mysql-коннектор-java: 5.1.21
- MySQL 5.5.Х
- Java JDK 1.7.0_09-b05
- Windows 7