Считайте свойства журнала изменений liquibase из внешнего файла свойств с помощью maven - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу прочитать свойства журнала изменений Liquibase из внешнего файла свойств.Я не хочу определять их в файле databasechangelog.xml в теге свойства, так как мне нужны разные параметры для разных сред.Мой внешний файл свойств будет выбран в соответствии с профилем, который я выбрал для плагина maven.Например, СОЗДАЙТЕ ИЛИ ЗАМЕНИТЕ SYNONYM $ {schema1} .myTable FOR $ {schema2} .myTable;Я хочу, чтобы эти параметры $ {schema1} и $ {schema2} были выбраны из файла свойств.Возможно ли это

Редактировать: В соответствии с комментарием @bilak я попробовал этот pom.xml:

<plugin>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <version>3.4.2</version>
    <configuration>
        <propertyFile>${basedir}/../environments/${build.profile.id}/liquibase.properties</propertyFile>
        <changeLogFile>${basedir}/src/main/resources/sql/db-changelog-master.xml</changeLogFile>
    </configuration>
</plugin>

liquibase.properties:

driver=oracle.jdbc.OracleDriver<br>
url=xxxxx<br>
username=xxxxxx<br>
password=xxxxxx<br>
parameter.testcolumn=test_column

Параметры конфигурации дБ считываются правильно, но столбец parameter.test не используется

mvn liquibase: update -Pprofile

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете использовать файл liquibase.properties (имя по умолчанию) и поместить туда такие переменные, как:

parameter.schema1=yourSchema1 parameter.schema2=yourSchema2

edit: Эта опция не работает сliquibase-maven-plugin но возможен обходной путь с maven-exec-plugin:

    <profiles>
        <profile>
            <id>liquibase</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.6.0</version>
                        <configuration>
                            <executable>java</executable>
                            <arguments>
                                <argument>-classpath</argument>
                                <classpath/>
                                <argument>liquibase.integration.commandline.Main</argument>
                                <argument>--defaultsFile=src/main/resources/database/liquibase.properties</argument>
                                <argument>updateSQL</argument>
                            </arguments>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

, если вы выполните тогда mvn exec:exec -Pliquibase, он должен заменить ваши заполнители параметрами из liquibase.properties.

edit 2019/07 Теперь вы можете использовать файл свойств для загрузки свойств из

...