这就是我所拥有的
--preconditions onFail:CONTINUE
--preconditions not tableExists tableName:QRTZ_CALENDARS schemaName:dbo
CREATE TABLE dbo.QRTZ_CALENDARS (
SCHED_NAME VARCHAR (120) NOT NULL ,
CALENDAR_NAME VARCHAR (200) NOT NULL ,
CALENDAR IMAGE NOT NULL
)
GO
背景。我使用liquibase为java中的测试用例设置h2数据库。
答案 0 :(得分:1)
目前,“格式化的SQL”更改日志中仅支持“ SQL检查”前提条件。 示例:
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM my_table
信息来源(和更新):https://docs.liquibase.com/concepts/basic/sql-format.html
答案 1 :(得分:0)
向您的变更集添加前提条件,例如:
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="Table_name"/>
</not>
</preConditions>
<createTable tableName="Table_name" >
<column name="column1" type="NUMBER(20,0)"/>
</createTable>
答案 2 :(得分:-4)
这是一个“愚蠢的问题”。 Liquibase应该跟踪变化而不是重新应用它们。
其他人可能会使用的学习方法是环顾四周。原因是spring.sboot正在运行schema.sql文件。
解决方案是仅使用liquibase来应用数据库更改。 liquibase脚本的失败帮助我找到了正在运行的其他脚本。