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)模式?
请咨询。