2014-10-10 43 views
3

當編寫一個變更創建表時,可以指定表的模式(見hereLiquibase generateChangeLog不輸出模式

如果我運行

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

generateChangeLog後使用--includeCatalog=true標誌。例如:liquibase generateChangeLog --includeCatalog=true

只有在generateChangeLog應該首先包含模式信息時纔會使用outputDefaultSchema。

+0

它似乎實際上需要'--includeCatalog = true';使用'--include-schema = true'不會輸出任何東西 – 2014-10-27 19:25:37

+0

對不起。使用includeCatalog vs includeSchema取決於數據庫。我不確定h2是否在場。我將更新答案 – 2014-10-27 19:52:15

+2

「--includeSchema = true」和「--includeCatalog = true」都不適用於我。但是'--outputDefaultSchema = true'確實有效 – 2016-01-19 11:38:30

相關問題