当前位置: 首页 > 知识库问答 >
问题:

如果运行spring boot并让Liquibase自动进行迁移,Liquibase databasechangelog表存储相对路径

狄德泽
2023-03-14

我知道liquibase将创建一个databasechangelog来检查是否应用了一个更改集。但是如果我让应用程序自动运行它,FILENAME列将存储changelog文件的相对路径。但是如果我运行mvn liquiBase:status,它会说我的更改集没有被应用,原因是在liquiBase.properties文件中,我将changelog的路径定义为绝对路径(即changelogfile=src/main/resources/db/changelog/db-changelog-master.xml),而对于spring boot app自动迁移,在application.properties文件中,路径定义为相对路径(spring.liquibase.change-log=classpath:db/changelog/db-changelog-master.xml),并且“如果手动执行(通过运行mvn LiquiBase:Update),则将存储“src/main/resources/db/changelog/db-changelog-master.xml”。

我怎样才能解决这个问题呢?因为我想控制迁移(即手动进行迁移),或者在开发环境中检查迁移的状态。

共有1个答案

时向文
2023-03-14

在我更改了属性:changelogfile=/db/changelog/db-changelog-master.xml之后,在liquibase.properties中,mvn命令按预期工作:现在liquibase将我的changelog/db-changelog-master.xml的路径视为“db/changelog/db-changelog-master.xml”

 类似资料:
  • 我在本地数据库上运行了一个迁移,进行得很顺利。我正在为同一模式的另一个数据库使用另一个。yml文件,但失败并出现错误

  • 我们正在尝试将迁移作为.sql文件置于版本控制之下。开发人员将编写一个vn__*.sql文件,提交到版本控制,并且每5分钟运行一次的作业将自动迁移到开发和测试数据库。一旦更改被证明没有引起问题,其他人就会运行一个手动作业来在生产上运行迁移。 我的问题: 我有一个演示迁移,创建了几个表。我将v4__demotable.sql检查到PC上的版本控制中。 阅读文档时,开发人员似乎建议我应该创建一个新的v

  • 我们有许多项目在许多服务器上运行,查找一个数据库,我们正在考虑为每个项目设置Flyway以控制我们的数据库结构。 但是,如果某些项目同时重新部署,我们担心并发迁移问题。(顺便说一句,我们总是在sql语法中照顾“如果存在”的事情) Flyway如何在同一数据表或其他结构发生并发更改时工作?

  • 我需要将数据从一个azure表存储迁移,基本上是从一个表迁移到另一个表(两个表既可以在同一订阅中,也可以在不同订阅中)。 在Azure表存储中是否有任何方法可以像在SQL存储中那样实现上述要求,在SQL存储中用户可以生成整个数据库或单个表的脚本或备份。

  • 问题内容: 我在夹层中使用Django1.7。我创建了简单的配置文件(根据Mezzanine文档),存储在单独的应用程序“配置文件”中: 创建迁移会返回: 当我运行“迁移配置文件”时: 问题是,当我尝试打开与mezzanine.accounts相关的任何页面(例如更新帐户)时,它崩溃并显示: 我做错了什么? 问题答案: 在MySQL数据库中,从表中删除行。 删除迁移文件夹中的所有迁移文件。 重试并

  • 我希望Flyway在我向服务器部署新战争时运行。 部署服务器时,飞行路线会自动运行吗?我是否必须始终自动执行脚本,然后执行飞行路线迁移命令?或者最好的方法是什么? 服务器: 该服务器是一个运行在Elastic Beanstalk (AWS)上的Java Tomcat服务器,它连接到一个MySQL数据库。 部署流程 我们在数据库上手动运行sql迁移脚本。然后我们上传一个服务器的新war到Elasti