具有SQL和MVN的Liquibase上下文

时间:2018-08-16 15:27:52

标签: maven liquibase

我有一个MVN项目,用于使用Liquibase 3.1.1管理数据库迁移

我有一个包含要运行的上下文的属性文件

contexts=development

正在加载,我在输出中看到以下内容

[INFO]     context(s): development

我有一个类似于以下内容的databaseChangeLog

<databaseChangeLog
    xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
    http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

    <include file="changesets/api/pmck/pmck-1.sql" relativeToChangelogFile="true"/>
    <include file="changesets/api/pmck/pmck-2.sql" relativeToChangelogFile="true"/>
</databaseChangeLog>

要在不在开发环境中时运行的文件pmck-1.sql:

-- liquibase formatted sql
-- changeset pmck:pmck-1.sql context=!development failOnError:true

create table PMCK_TEST_PRODUCTION_ONLY_TABLE(
  ID CHAR(128) NOT NULL
);

INSERT INTO PMCK_TEST_PRODUCTION_ONLY_TABLE
(ID)
VALUES(uuid()),
  (uuid());

和第二个我无论上下文如何都想始终运行的sql:

-- liquibase formatted sql
-- changeset pmck:pmck-2.sql failOnError:true

create table PMCK_TEST_TABLE(
  ID CHAR(128) NOT NULL
);

INSERT INTO PMCK_TEST_TABLE
(ID)
VALUES(uuid()),
  (uuid());

运行mvn install时,无论上下文值如何,我都发现两者都在运行。我如何只能运行一个?我错过了什么

0 个答案:

没有答案