如何解决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 举报,一经查实,本站将立刻删除。