Liquibase分别对待PostgreSQL模式

时间:2018-07-10 08:09:40

标签: maven database-schema database-migration liquibase

Liquibase令我惊讶

我需要分别对待两个PostgreSQL模式的演变。这意味着要保留每个架构的变更日志,并且不要明显地将其表混合在一起。

使用此Maven设置,我能够为每个架构生成初始更改日志:

<configuration>
                    <propertyFileWillOverride>false</propertyFileWillOverride>
                    <propertyFile>src/main/resources/liquibase/${ctlg}/liquibase.${ctlg}.properties</propertyFile>
                    <driver>org.postgresql.Driver</driver>
                    <url>jdbc:postgresql://212.89.239.181:5432/vedica_dev?currentSchema=audit</url>
                    <username>user</username>
                    <password>pass</password>
                    <diffChangeLogFile>
                        src/main/resources/liquibase/${ctlg}/changelog/${maven.build.timestamp}_changelog.xml
                    </diffChangeLogFile>
                    <defaultSchemaName>
                        ${ctlg}
                    </defaultSchemaName>
                    <changeLogFile>
                        src/main/resources/liquibase/${ctlg}/main.xml</changeLogFile>
                    <outputChangeLogFile>
                        src/main/resources/liquibase/${ctlg}/${ctlg}_init.xml
                    </outputChangeLogFile>
                    <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
                    <referenceUrl>
                        hibernate:spring:com.nws.vedica.model?dialect=org.hibernate.dialect.PostgreSQL92Dialect
                    </referenceUrl>
</configuration>

更改日志文件main.xml

<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="src/main/resources/audit/audit_init.xml" />

</databaseChangeLog>

因此,在配置中,您看到我需要引入带有$ {ctlg}变量的Maven配置文件,以便能够区分公共/审计设置文件夹。每个.prop文件都有一个属性文件,该文件指出正在正确读取的defaultSchemaName(我从日志中可以看到),我将它引入了maven设置,以确保。

即使在我mvn liquibase:diff -P audit 这样做时,它也会同时生成公共模式和审核模式的差异。

就像我几乎不敢相信那样,我可能会忽略/设置某些东西,但是我在这里感到绝望。

问题是:如何强制liquibase(3.5.3)分别对待PostgreSQL(9.6)模式?

请咨询。

0 个答案:

没有答案