【问题标题】:How do I get liquibase to skip table creation if it already exists with liquibase formatted sql?如果 liquibase 格式的 sql 已经存在,如何让 liquibase 跳过表创建?
【发布时间】:2018-06-09 11:10:21
【问题描述】:

这就是我所拥有的

--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 数据库。

【问题讨论】:

    标签: testing h2 liquibase


    【解决方案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

    【讨论】:

      【解决方案2】:

      为您的变更集添加前置条件,例如:

      <preConditions onFail="MARK_RAN">
          <not>
              <tableExists tableName="Table_name"/>
          </not>
      </preConditions>
      <createTable tableName="Table_name" >
          <column name="column1" type="NUMBER(20,0)"/>
      </createTable>
      

      【讨论】:

      • 问题展示了前置条件的使用。它什么也没做。
      猜你喜欢
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 2021-07-17
      • 2014-06-13
      • 2022-06-26
      • 2023-03-31
      • 2017-12-04
      相关资源
      最近更新 更多