H2 и flyway cru sh на тестах после обновления с 4 до 6 - PullRequest
0 голосов
/ 26 мая 2020

Я нахожусь в процессе обновления с Gradle 4 до 6. Это заставило меня обновить многие вещи, такие как spring, h2, mySql connector и т.д. c ..

Теперь у меня есть эта проблема : во время выполнения, используя MySQL, все работает нормально. но на тестах я получаю:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flyway' defined in com.bluerbn.wallet.infra.SpringTestConfiguration: Invocation of init method failed; nested exception is org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException: 
Migration V9__fixIndex.sql failed
------------------------------------------------
SQL State  : 42S22
Error Code : 42122
Message    : Column "INDEX" not found; SQL statement:
ALTER TABLE table1 DROP INDEX ACC_INDEX [42122-200]
Location   : db/migration/V9__fixIndex.sql (/Users/.../resources/db/migration/V9__fixIndex.sql)
Line       : 1
Statement  : ALTER TABLE table1 DROP INDEX ACC_INDEX

Это старый скрипт, который работал нормально до обновления.

версии:

  • весенняя загрузка: 2.3.0
  • org.flywaydb: flyway-core: 6.4.1 (хотя в gradle я поставил 6.4.2)
  • com.h2database: h2: 1.4.200
  • mysql: mysql -connector- java: 8.0.18

Есть идеи?

1 Ответ

2 голосов
/ 26 мая 2020

H2, так как версия 1.4.200 допускает MySQL -стиль ALTER TABLE tableName DROP INDEX indexName только в режиме совместимости MySQL. В 1.4.199 и более ранних версиях эта недопустимая (для H2) команда была неверно принята во всех режимах.

Вам необходимо добавить ;MODE=MySQL в JDB C URL для H2.

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