Строка, начинающаяся с #, не рассматривается как комментарий для MySQL в H2 - PullRequest
1 голос
/ 13 января 2020

Я использую flyway с моим SpringBoot приложением. База данных MySQL. Комментарии в скриптах flyway начинаются с #.

Когда я пытаюсь написать тест H2, он не может загрузить ApplicationContext с ошибкой.

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException: 
Migration V0_0_1__init.sql failed
-------------------------------------------------
SQL State  : 42000
Error Code : 42000
Message    : Syntax error in SQL statement "[*]# types
INSERT INTO `users`.`TYPES` (NAME) VALUES (""Bob"") "; SQL statement:
# Types
INSERT INTO `users`.`types` (name) VALUES ("Bob") [42000-199]
Location   : db/migration/V0_0_1__init.sql (/myapp/target/classes/db/migration/V0_0_1__init.sql)
Line       : 1
Statement  : # Types
INSERT INTO `users`.`types` (name) VALUES ("Bob")

Из того, что я был в состоянии понять, H2 не обрабатывает строки, начинающиеся с #, как комментарии, а MySQL Есть ли способ заставить H2 рассматривать # в сценариях SQL как комментарии?

У меня даже установлен режим MySQL в моем application-test.properties, и тест с использованием h2-test профиль.

spring.datasource.url=jdbc:h2:myapp;MODE=MySQL;INIT=CREATE SCHEMA IF NOT EXISTS myapp;

1 Ответ

0 голосов
/ 24 февраля 2020

Как сказал Евгений Рязанов, H2 поддерживает только комментарии в форме:

-- anything
// anything
/* anything */

Подробнее смотрите в документации H2 .

Затем следует придерживаться на стандартные комментарии SQL92 , которые --, и соответственно изменяют ваши SQL сценарии инициализации.

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