Liquibase generateChangeLog不输出模式

时间:2014-10-10 21:48:31

标签: liquibase

在编写用于创建表的changeSet时,您可以指定表的模式(请参阅here

如果我跑

liquibase generateChangeLog

输出不包含架构。

供参考,这是我使用的liquibase.properties文件:

driver: org.h2.Driver
classpath: h2-1.4.181.jar
url: jdbc:h2:~/test.db
username: sa
password: sa
changeLogFile: baseline.xml
liquibaseCatalogName: LIQUIBASE
liquibaseSchemaName: BAR
defaultSchemaName: BAR
outputDefaultSchema: true
outputDefaultCatalog: true

其中一个表的输出:

<createTable tableName="PRODUCTS">
  <column name="ID" type="INT(10)"/>
  <column name="CODE" type="VARCHAR(10)"/>
  <column name="PRICE" type="DECIMAL(9, 2)"/>
</createTable>

如果我手动编写,我会包含架构:

<createTable schemaName="BAR" tableName="PRODUCTS">
  <column name="ID" type="INT(10)"/>
  <column name="CODE" type="VARCHAR(10)"/>
  <column name="PRICE" type="DECIMAL(9, 2)"/>
</createTable>

这是设计的吗?事后我可以使用XSLT。

2 个答案:

答案 0 :(得分:2)

在generateChangeLog之后使用--includeCatalog=true标志。例如:liquibase generateChangeLog --includeCatalog=true

仅当generateChangeLog首先包含架构信息时才使用outputDefaultSchema。

答案 1 :(得分:0)

请使用outputDefaultSchema=true。这将在变更集中输出模式名称。 使用Maven插件时,请使用<outputDefaultSchema>true</outputDefaultSchema>