未检查Liquibase sql前提条件

时间:2017-01-05 20:38:51

标签: java oracle liquibase

我有多个更改日志,其中一个更改日志具有检查表是否存在的前提条件,如果存在,则跳过运行迁移。

我的更改日志文件

DateTime startDate = (DateTime)row["Course_StartDate"];
DateTime endDate = (DateTime)row["Course_EndDate"];

前提条件从未被检查过,它直接用于创建“人”'表。由于刷新,我在这个数据库实例中有这个表,如果它不存在,我希望这个迁移运行并跳过前置条件。

错误我

--liquibase formatted sql

--preconditions onFail:MARK_RAN onError:MARK_RAN
--precondition-sql-check expectedResult:0 select COUNT(*) C from dba_tables where UPPER(table_name) = 'PERSON' and upper(owner) = 'INT'

--changeset nvoxland:3
create table int.person (
  id int not null primary key,
  firstname varchar(80),
  lastname varchar(80) not null,
  state varchar(2)
);

1 个答案:

答案 0 :(得分:0)

没关系,我自己解决了这个问题

前提条件的排序很重要,更新到以下内容,这次运行正常

--liquibase formatted sql

--changeset nvoxland:3
--preconditions onFail:MARK_RAN onError:MARK_RAN
--precondition-sql-check expectedResult:0 select COUNT(*) C from dba_tables where UPPER(table_name) = 'PERSON' and upper(owner) = 'INT'
create table int.person (
  id int not null primary key,
  firstname varchar(80),
  lastname varchar(80) not null,
  state varchar(2)
);