当前位置: 首页 > 知识库问答 >
问题:

从gradle 4升级到6后的H2和flyway压碎测试

史骏
2023-03-14

我正在从四年级升到六年级。这迫使我升级了很多东西,比如spring、h2、mySql连接器等。。

现在我有这个问题:在运行时,使用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

这是一个在升级之前运行良好的旧脚本。

版本:

  • Spring靴:2.3.0
  • 组织。flywaydb:flyway core:6.4.1(尽管在gradle我放了6.4.2)
  • com。h2数据库:h2:1.4.200
  • mysql:mysql连接器java:8.0.18

有什么想法吗?

共有1个答案

解念
2023-03-14

H2自1.4.200版以来,仅在MySQL兼容模式下才允许MySQL样式的ALTER tableName DROP indexName。在1.4.199和旧版本中,所有模式都错误地接受了此无效(对于H2)命令。

您需要附加;MODE=MySQL到H2的JDBC URL。

 类似资料:
  • 我陷入了深深的泥潭:( 我想把gradle从4升级到6。这让我升级了spring,最终升级了flyway和H2。 现在,不幸的是,我在测试中遇到了飞行路线错误。 以下是一些信息: 在升级之前,一切正常。现在我收到了关于另一个版本(尽管我使用的是推荐的)版本的奇怪警告,以及大量或错误。: 测试属性: 当我正常运行应用程序时,没有测试,一切正常。 有什么想法吗? 谢谢和问候, 编辑 我一直在试图理解为

  • 当我将pom.xml(Maven)中的现有包从QAF 3.0.0升级到3.0.1b时,自动化测试停止了TestNG中提到的测试。 结果:测试运行:0,失败:0,错误:0,跳过:0[信息]生成成功 /config/ /src/... ...等

  • 我使用WebPack4将Angular从Angular.js1.6.6升级到Angular 6: 创建自定义别名,向tsconfig添加正确路径,Webpack构建通过并产生输出,但当应用程序在浏览器中启动时,控制台中弹出错误:n格鲁特丢失或不正确的ng模块组件没有正确执行什么操作&如何修复此错误?

  • 在我升级到gae 1.7.6后,dev_appserver崩溃了,因为我有带德语元音的文件夹。

  • 我正在用Cucumber编写验收测试,我想使用H2数据库进行测试。 应用程序测试属性如下所示: 在目录resources/db/migration中,我有一个包含这些脚本的sql文件: 但是当我运行测试时,H2用默认格式创建模式,而不是使用脚本: 如您所见,所有VARCHAR都是使用255大小创建的,而不是真实值。 你能帮我把飞行道和H2整合起来吗? 谢谢!