首页 > 解决方案 > 如果运行 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.

我该如何解决这个问题?因为我想控制迁移(即手动迁移)或检查开发环境中的迁移状态。

标签: spring-bootliquibase

解决方案


在我更改属性后:changeLogFile=/db/changelog/db-changeLog-master.xml,在 liquibase.properties 中,mvn 命令按预期工作:现在 liquibase 认为我的更改日志的路径是“db/changelog/db-changeLog -master.xml"


推荐阅读