【发布时间】:2022-01-09 07:18:58
【问题描述】:
当 Spring Boot 应用程序第一次启动时,liquibase 应该创建一个用户以供运行时使用。密码应该是可配置的,以便它可以因环境而异。我正在尝试这样实现:
<changeSet id="2021-12-02 12:00:01" author="author" dbms="mysql">
<sql>
CREATE USER consumer_app IDENTIFIED BY '${spring.datasource.password}';
</sql>
<rollback>
DROP USER IF EXISTS consumer_app;
</rollback>
</changeSet>
和application.yml:
spring:
liquibase:
enabled: true
user: root
password: root
datasource:
url: "jdbc:mysql://localhost:3306/db"
username: consumer_app
password: password
而且它不起作用。密码设置为${spring.datasource.password},而不是application.yml 中该属性的值。如果没有单引号,我会收到语法错误。
该项目是使用 Maven 构建的。
密码将从 docker-compose 注入,因此使用带有 docker-managed 变量的 init.sql 也是一种选择。
【问题讨论】:
-
你可以试试不带单引号吗? docs.liquibase.com/concepts/basic/…
-
@hovanessyan,没有单引号我得到一个语法错误
-
查看它在 SQL 示例中所说的文档:“目前,更改日志属性替换在 SQL 格式中不可用。”
标签: spring-boot maven docker-compose liquibase