【发布时间】:2026-01-03 05:35:01
【问题描述】:
我来自 .Net 背景,我在一个使用 Maven、Spring 和 Liquibase 的 Java 项目上崭露头角。不用说,这是一个需要处理的新概念和框架。
测试无法完成:
我的测试无法成功完成,因为它们在尝试访问我的数据库中的表时失败。他们失败了,因为该表不存在。我看到我的项目中有许多 Liquibase XML 格式的迁移文件,但我正在研究如何运行它们。
liquibase-maven-plugin 不是一个选项:
我看到其他人可能会使用liquibase-maven-plugin 插件,但就我而言,该项目没有在任何 pom.xml 中引用该插件,只有liquibase-core。鉴于他们从未在 pom.xml 文件中引用过这个插件,有少数其他开发人员知道他们过去在这个项目上所做的工作,我认为这是有充分理由的,我不会搅拌那个锅.
SpringLiquibase?
他们引用了一个看起来像这样的 bean:<bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase">,经过进一步研究,它似乎可以进行自动数据迁移,
太棒了!
....但是我该如何调用它呢?我的项目必须已经通过了我的测试并且在这个逻辑被击中之前实际上已经被“运行”了吗?如果是这种情况并且我的项目必须成功构建/测试,那么我显然必须在这个 SpringLiquibase bean 之外运行我的迁移。
我应该使用liquibase 命令行吗?如果是这样,我可以放心地假设这是以前的开发人员在最初建立数据库时所做的吗?
【问题讨论】:
-
使用真实数据库进行测试?也许你可以多分享一点,因为很难说问题是什么。还有为什么
liquibase-maven-plugin不是一个选项,而 liquibase cli 是? -
@RC,我的
service模块测试确实命中了开发数据库,是的。而且,虽然是的,但我也可以只安装liquibase-maven-plugin并 可能 解决此问题,但它从未使用过是有原因的。因为我是新手,所以我不想在不了解在我之前如何完成的“为什么”的情况下开始修改事物。我以前一直是项目的负责人,看到新人只是更改设置以使某些东西“工作”,尽管它在那个人出现之前完全正常运行并且由于缺乏理解而改变了事情,这让我感到非常沮丧。跨度>
标签: java eclipse spring maven liquibase