spring-boot - 如果运行 spring boot 并让 liquibase 自动执行迁移,则 Liquibase databasechangelog 表存储相对路径
问题描述
我知道 liquibase 将创建一个 databasechangelog 来检查是否已应用一个更改集。但是如果我让应用程序自动运行它,FILENAME 列将存储更改日志文件的相对路径。但是如果我运行 mvn liquibase:status,它说我的更改集没有被应用,原因是在 liquibase.properties 文件中我将更改日志的路径定义为绝对路径(即 changeLogFile=src/main/resources/db/ changelog/db-changeLog-master.xml),而对于 Spring Boot 应用程序自动迁移,路径在应用程序中定义为相对路径(spring.liquibase.change-log=classpath:db/changelog/db-changeLog-master.xml)。属性文件和“db/changelog/db-changeLog-master.xml”存储在数据库中。如果您手动执行(通过运行 mvn liquibase:update),“src/main/resources/db/changelog/db-changeLog-master.
我该如何解决这个问题?因为我想控制迁移(即手动迁移)或检查开发环境中的迁移状态。
解决方案
在我更改属性后:changeLogFile=/db/changelog/db-changeLog-master.xml,在 liquibase.properties 中,mvn 命令按预期工作:现在 liquibase 认为我的更改日志的路径是“db/changelog/db-changeLog -master.xml"
推荐阅读
- python - 使用 Python 通过 dbus 从 BLE 模块解析数据
- angular - 与 X 不同的值的角度反应形式验证器
- r - 使用 if 和 for 在 R 中创建向量 - 返回“NA”?
- javascript - 我需要将 txt 文件输入到 javascript 中,然后显示一个包含 txt 文件信息的表格
- xml - RegEx - 使用 XSD 中的模式匹配指定值的开头
- c++ - 如何在另一个程序中使用在一个程序中声明的变量?
- android - 如何使用 OTP 进行身份验证
- visual-studio-code - 注释掉的javascript的语法突出显示?
- javascript - 如何将 JSX 存储在变量中?
- angularjs - 如何为我的 chrome 扩展获取浏览器的角度版本?