2016-08-12 3 views
2

По значениям параметров документации ищутся в следующем порядке:параметры LiquiBase журнала изменений в liquibase.properties

Зачет в качестве параметра вашего LiquiBase бегуна (см Ant, command_line и т.д. документацию для того, как передать их)

В качестве свойства системы JVM

В параметры блока (Tag) файла DatabaseChangeLog сам.

Могу ли я установить эти параметры в файле стандартных свойств?

ответ

3

Возможно установить параметры изменения в файле liquidibase.properties или пользовательские --defaultsFile. Reading the source указывает, что вы должны префикс свойств с параметром..

Ваша ошибка, вероятно, выглядит примерно так:

SEVERE 11/4/16 10:26 AM: liquibase: Unknown parameter: 'read_only_user' 
liquibase.exception.CommandLineParsingException: Unknown parameter: 'read_only_user' 
    at liquibase.integration.commandline.Main.parsePropertiesFile(Main.java:453) 

Пример liquibase.properties:

driver=oracle.jdbc.driver.OracleDriver 
url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost)(PORT=1600))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=devdb)))" 
username=scott 
password=tiger 
defaultSchemaName=app_admin 
promptOnNonLocalDatabase=false 
parameter.read_only_user=app_read 

Использование параметра в ревизией:

<changeset author="Ryan" id="1"> 
    <sql>GRANT SELECT ON APP.SOME_TABLE TO ${read_only_user}</sql> 
</changeset> 
0

Да, возможно: http://www.liquibase.org/documentation/liquibase.properties.html. И используйте --defaultsFile для передачи файла свойств.

+0

Вопрос в том - что положить в свойствах файла параметров журнала изменений? – Amit

+0

например. changelog параметр $ {user_name} – Amit

+1

Что вы пытаетесь достичь? – dbf

0

Да, и очень полезно, если вы хотите управлять информацией под контролем ... например, паролями в разных средах: liquibase.properties:

parameter.pass_admin=idonthavepassword 

и изменений:

<changeSet author="rbs" id="create_user_admin" labels="inicial"> 
    <preConditions onFail="CONTINUE"> 
    <sqlCheck expectedResult="0">SELECT COUNT(1) FROM pg_roles WHERE rolname='admin'</sqlCheck> 
    </preConditions> 
    <sql>CREATE USER admin PASSWORD '${pass_admin}' LOGIN SUPERUSER NOCREATEDB NOCREATEROLE INHERIT NOREPLICATION CONNECTION LIMIT -1 
     <comment>Creating admin user</comment> 
    </sql> 
</changeSet>