H2数据库唯一索引名称的解决方法

问题描述

我有一个Java应用程序,该应用程序使用Liquibase进行迁移,直到现在仍在使用MysqL运行测试用例。

我想用h2数据库运行测试用例。为此,我在JDBC配置中进行了必要的更改。但是当我运行mvn test时,出现以下错误

索引“ idx_workflow_id”已经存在; sql语句:

在调试时,我发现两个表中都有一个具有相同名称的索引:idx_workflow_id,并且h2数据库数据库中具有唯一索引名称有一定的约束。

现在的问题是登台和生产中已经存在数据库结构,并且不能选择更改索引名称

有什么方法可以运行h2数据库的迁移,而无需创建索引或忽略它们。或进行一些配置更改,这将允许在数据库中使用相同名称的索引。

config

database:
    driverClass: org.h2.Driver
    url: "jdbc:h2:mem:my_db;MODE=MysqL;DATABASE_TO_UPPER=false;IGnorECASE=TRUE;DB_CLOSE_DELAY=-1"
    maxWaitForConnection: 1s
    minSize: ${MIN_DB_CONNECTIONS:-10}
    maxSize: ${MAX_DB_CONNECTIONS:-100}
    defaultTransactionIsolation: READ_COMMITTED
    checkConnectionWhileIdle: false
    checkConnectionOnBorrow: true
    checkConnectionOnConnect: true
    validationQuery: "SELECT 1"
    properties:
      hibernate.dialect: org.hibernate.dialect.H2Dialect
      hibernate.show_sql: false
      hibernate.hbm2ddl.auto: none
      hibernate.session.events.log: false
      hibernate.generate_statistics: true
      org.hibernate.stat: INFO
      charSet: UTF-8

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)