在 *Sping Boot * 启动时,从这个application.properties
执行 Liquibase changelog:
url=jdbc:postgresql://localhost:5434/comptesfrance
changeLogFile=../AdapterOutboundPostgis/target/classes/db/changelog/compte-france-postgis-changelog.xml
driver=org.postgresql.Driver
username=postgres
password=postgres
port=5434
连接完成,每个变更集都被服务,除了这类变更集:
<changeSet id="shp2pgsql_communes_2023" author="mlebihan" failOnError="false">
<comment>Importation des shapefiles des contours des communes 2023</comment>
<executeCommand executable="/bin/bash">
<arg value="-c"/>
<arg value="export PGPASSWORD=${password};shp2pgsql -s 4326
-I /data/comptes-france/territoire/2023/communes.shp public.communes_2023 |
psql -d comptesfrance -U postgres -h localhost -p ${port} -q"/>
</executeCommand>
</changeSet>
这里,${password}
和${port}
没有解析。
/bin/bash -c export PGPASSWORD=${password};shp2pgsql -s 4326
-I /data/comptes-france/territoire/2023/communes.shp public.communes_2023 |
psql -d comptesfrance -U postgres -h localhost -p ${port} -q
我尝试在属性文件中添加属性liquibase.port=5434
,但没有成功。
作为一个变通方法,我坐在我的更新日志的顶部:
<property name="port" value="5434" />
<property name="password" value="postgres" />
然后就成功了我可以看到:
Shell command '/bin/bash -c export PGPASSWORD=postgres;shp2pgsql -s 4326
-I /data/comptes-france/territoire/2023/communes.shp public.communes_2023 |
psql -d comptesfrance -U postgres -h localhost -p 5434 -q' executed
但这不能持续太久。
为什么application.properties
*Sping Boot * 参数可以被 Liquibase 解释-因为它可以连接到数据库(在非标准的 PostgreSQL 端口上:5434
)-并且不能同时找到更新日志/变更集?
1条答案
按热度按时间uplii1fm1#
Sping Boot 在自己的perfix
spring.liquibase
下定义了Liquibase(LB)属性。如果你想把参数传递给LB,你应该有这样的东西: