當 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 注入,因此 init.sql 和 docker-managed 變數也是一種選擇。
uj5u.com熱心網友回復:
在 Spring Boot 中,您使用以下示例從 yaml 傳遞引數:
spring:
liquibase:
parameters:
spring.datasource.password: ${spring.datasource.password}
請注意,只有傳遞給的引數spring.liquibase.parameters被發送到 liquibase 背景關系。
uj5u.com熱心網友回復:
您應該使用 insert into mysql.user 代替,并使用 insert liquiabse balise 而不是普通的 SQL 來傳遞值的引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378564.html
標籤:弹簧靴 行家 docker-compose 液碱
