Flyway supports environment variables in config files。
是否有一种方法可以使Flyway从文件中加载这些变量,类似于Docker和Node.js with dotenv所做的事情?
.env
文件的内容例如:
DB_URL=jdbc:postgresql://localhost:5432/db_name
还有flyway.conf
:
flyway.url=${DB_URL}
答案 0 :(得分:1)
如果您使用的是flyway-maven-plugin
,则目前有3种方法:
例如
<properties>
<flyway.url>jdbc:h2:mem:public;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MySQL;INIT=CREATE SCHEMA IF NOT EXISTS "public";</flyway.url>
<flyway.user>root</flyway.user>
<flyway.password></flyway.password>
</properties>
.env
或.conf
文件中定义飞行路线属性。mvn -Dflyway.configFiles=src/main/resources/some-env-file.env flyway:migrate
some-env-file.env
的内容:
flyway.url=jdbc:h2:mem:public;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MySQL;INIT=CREATE SCHEMA IF NOT EXISTS "public";
flyway.user=root
flyway.password=
mvn -Dflyway.url="jdbc:h2:mem:public;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MySQL;INIT=CREATE SCHEMA IF NOT EXISTS public;" -Dflyway.user=root -Dflyway.password=root flyway:migrate
但是,如果您想使用properties-maven-plugin
从某个文件中加载属性并将其用作环境变量,以供flyway-maven-plugin
使用,那么很遗憾,这不起作用。
这是github issue对此进行跟踪的
。