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

Dropwizard migrationliquibase新变更集未迁移

楚岳
2023-03-14

我已经向migrations.xml添加了新的变更集,但是当我运行db迁移配置文件时,它不会应用新的变更集,只是输出如下:

INFO  [2015-02-10 12:59:34,193] liquibase: Successfully acquired change log lock
INFO  [2015-02-10 12:59:34,809] liquibase: Reading from public.databasechangelog
INFO  [2015-02-10 12:59:34,821] liquibase: Successfully released change log lock

我有两个变更集,只应用了第一个变更集。例如:

<changeSet id="1" author="me">

<changeSet id="2" author="me">

另外,我只看到数据库更改日志表下的第一个更改集条目,这很奇怪。

如何使其应用我的新变更集?

共有2个答案

程谭三
2023-03-14

我们遇到了类似的问题。我们的问题是,我们只将stdout输出到日志文件中,但是liquibase会将任何与stderr相关的错误放入日志文件中,而stderr是被无声地丢弃的。

对于实际错误:我们实际上在变更集 1 中存在哈希不匹配(与存储在 DB 中的内容相比),这就是变更集 2 未运行的原因。

南宫云
2023-03-14

我遇到了类似的问题,最终实现了迁移。xml文件打包在生成的jar文件中。每次更改migrations.xml时,都需要重新编译jar。

您还可以使用 --迁移标志来指定它位于 jar 外部的迁移文件。

 类似资料:
  • 我们使用liquibase对数据库进行源代码控制。最初,我们从Postgres开始,创建了数据类型为特定于Postgres的列的变更集。 例如,我们有一个变更集,它创建了具有“JSON”类型字段的表。现在,我们想转移到其他数据库。因此,当我们针对另一个数据库运行变更集时,它无法创建表。我尝试添加“failOnError=false”。但是,后面的变更集失败,因为该表不存在。 您能建议如何重构旧的变

  • 问题内容: 我在测试代码中有一个数组 要求arr [0] .GetId() 服务器是接口。ServerInstance是实现接口方法的结构,即 我有一个像 这正在更新结构的变量“ Id”。我确定值会更新为- 但这并没有反映在第3行的通话中 _*_更新* 范例 http://play.golang.org/p/zUqJ0hEjxv 问题答案: 您在添加结构时将其复制,而不是在示例中放置指向结构本身的

  • 我想在changelog文件中使用以下变更集标记数据库,以便将来回滚。当我应用这个变更集时,我在databasechangelog中注意到,前面的变更集也用标记更新了。 changelog文件中的变更集 下面是从databasechangelog表中提取的内容,function51是上一次运行的变更集 有人遇到过吗?我使用的是Liquibase 3.1.1 多谢了。

  • 问题内容: 我是Python和程序设计的新手,但似乎无法理解为什么此函数不更新全局变量 我也尝试过 问题答案: 需要声明的是是全球性的 内部 ,而不是外面。 该语句告诉Python,在函数范围内,它引用的是全局变量,而不是一些新的局部变量。

  • 问题内容: 我定义了一个范围变量。加载视图时,我从数据库加载字符串并将其设置为。然后,我在正在使用的texteditor(Froala)上进行填充。 下面是该视图的代码: 所以基本上我将texteditor 设置为ng- model。因此,当我对文本编辑器进行更改时,它会修改值。 我发现这很奇怪的一件事是,当我在texteditor中修改文本时,它在div内发生了变化。但是,它不会在div之外更新

  • 我的问题是liquibase没有回滚我的一些变更集,这些变更集是在我试图回滚的变更集上设置标签后执行的。 例如,我创建了两个按正常方式执行的变更集(A和B)。然后,我创建了另一个变更集,它将变更集B的标记设置为Release1。并且这个变更集也按预期工作。但是,我随后执行另外5个变更集,所有变更集都使用回滚命令。而且这些也执行得很好。 现在,这个回滚不应该回滚在执行release1标记之后执行的任