2014-10-10 2 views
3

При написании набора изменений для создания таблицы, вы можете указать Схему таблицы (см here)LiquiBase 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

Используйте флаг --includeCatalog=true после generateChangeLog. Например: liquibase generateChangeLog --includeCatalog=true

OutputDefaultSchema используется только в том случае, если generateChangeLog должен включать информацию о схеме в первую очередь.

+0

Кажется, на самом деле требуется '--includeCatalog = true'; использование '--include-schema = true' ничего не выводит –

+0

Извините. Использование includeCatalog vs includeSchema зависит от базы данных. Я не был уверен в том, что это было с рук. Я обновлю ответ –

+2

Ни '--includeSchema = true', ни' --includeCatalog = true' не работал для меня. Однако '--outputDefaultSchema = true' действительно работал –

Смежные вопросы