我们使用 liquibase 来跟踪我们的数据库更改.. 第一个 changeSet 包含这些行:
<column name="SHORT_ID" type="INTEGER">
<constraints unique="true" />
</column>
基本上这意味着 SHORT_ID 列具有唯一约束,但此约束的名称可以是任何名称并且通常每次都不同(我们针对 H2 数据库运行一些集成测试,并且每次运行测试时都会创建新的基础)
所以.. 问题是:我无法更改第一个 changeSet 但现在我们必须摆脱这个唯一约束。任何想法如何通过使用 liquibase 来实现?
最佳答案
Liquibase 提供了一种在不知道约束名称的情况下删除非空约束的实现。当问这个问题时它可能不存在(我意识到它已经很老了)。
<dropNotNullConstraint catalogName="cat"
columnDataType="int"
columnName="id"
schemaName="public"
tableName="person"/>
A dropUniqueConstraint存在,但您可能已经知道它,因为它需要约束名称。
关于java - Liquibase 在不知道名称的情况下删除约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3618234/