Flyway 异常:未提供占位符表达式值 - ${date},${username} - 如何解决
Flyway 引发的异常:'org.flywaydb.core.api.FlywayException: 未提供占位符表达式的值:${date},${username}。请检查您的配置!' 意味着你在 Flyway 的配置文件中使用了占位符表达式,比如 ${date} 和 ${username},但没有提供这些占位符的实际值。
解决方法:
- 检查 Flyway 配置文件: 确认配置文件中是否使用了 ${date} 和 ${username} 等占位符,并确保你已经通过系统属性或环境变量提供了这些占位符的实际值。
- 提供占位符值: 可以在启动应用时通过以下方式提供占位符值:
- 系统属性: 使用
-Ddate=2023-10-27 -Dusername=your_username的形式传递。 - 环境变量: 设置环境变量
date=2023-10-27和username=your_username。
- 系统属性: 使用
- 使用占位符函数: 如果你需要在配置文件中使用动态值,可以考虑使用 Flyway 提供的占位符函数,比如
${spring.application.name}或${sys:date}。
示例:
CREATE TABLE user (
id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
created_by VARCHAR(255) DEFAULT '${username}'
);
注意: 确保你提供的占位符值与 Flyway 配置文件中使用的占位符名称一致。
如果以上方法仍然无法解决问题,请检查 Flyway 日志或官方文档获取更多信息。
原文地址: https://www.cveoy.top/t/topic/qexM 著作权归作者所有。请勿转载和采集!