如何读取SQL文件中的属性来替换占位符/环境变量?

时间:2015-09-01 07:02:01

标签: sql ant environment-variables flyway

我有一个flyway SQL脚本,它插入一些特定于环境的数据(如部署URL'等)。我在属性文件中有这些值。我想在此SQL文件中使用相同的属性。我可以通过ant替换来自bash文件的task / sed来做到这一点。在这种情况下,我需要手动运行脚本/ ant目标。有没有其他方法可以读取SQL文件中的属性来读取环境变量/替换占位符?

1 个答案:

答案 0 :(得分:0)

我找到了一个使用flyway的解决方案。我们可以使用flyway占位符。

<bean id="flyway" class="com.googlecode.flyway.core.Flyway"
      init-method="migrate" scope="singleton">
    <property name="dataSource" ref="dataSource" />
    <property name="disableInitCheck" value="true"></property>
    <property name="locations">
        <list>
            <value>migration-sql</value>
        </list>
    </property>
    <property name="placeholders">
        <map>
            <entry key="key1" value="${value1}"></entry>
            <entry key="key2" value="${value2}"></entry>
        </map>
    </property>
</bean>

属性文件:

value1= value of key 1

value2= value of key 2

参考: StackoverflowFlyway Feature request