问题描述
我有一个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 (将#修改为@)