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

liquibase-更新变更日志。带有最新数据库更改的yaml文件

赵华彩
2023-03-14

在生产中,数据库用液基changelog.yaml更新,数据库更新成功。

我们对数据库模式进行了一些更改(作为几个增强功能的一部分),例如创建新表、更改表列和创建约束等。

有没有办法使用最新的数据库架构更改自动更新 changelog.yaml?(需要附加到现有的 YAML 文件中,而不是从 SCRACH 重新创建。 因此对生产过渡数据的影响很小)

共有1个答案

闻修筠
2023-03-14

您需要查看命令diffChangeLog。它要求您有两个不同的数据库进行比较。一种方法是在手动更改模式之前使用snapshot命令创建JSON格式的数据库快照,然后进行更改,然后使用diffChangelog将快照与当前状态进行比较。或者,您可以比较两个实时数据库实例。

 类似资料:
  • 我决定在 Postgresql 的 Java 项目中使用 liquibase,所以我使用 maven goal 创建了初始变更集。现在它正在毫无问题地工作。 我正在寻找的是,在我对数据库进行了更改(比如从RDBMS客户端)之后,是否有任何命令可以分析更改日志和数据库状态,以根据我的更改生成更改集并将其附加到更改集xml文件中?

  • 谁知道如何从头开始迁移? 我像往常一样使用命令运行迁移 但不是运行迁移-我收到 谁知道会有什么问题?我需要手动添加数据交换日志和数据交换日志吗?这对我来说很奇怪,因为当我与其他框架分开使用liquibase时,它会为我生成这个表。

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

  • 我有一个使用Liquibase for PostgreSQL定义的现有模式。我正在添加对Oracle的支持,这需要进行重大更改。有些create-table标记只需更改数据类型即可工作,有些则不然(需要sql更改)。当前的changelog-schema文件在单个change-set下有多个create-table语句(我知道这不是一个好的设计,但这正是我现在要处理的),为了重用那些create-

  • 所以我的问题是--我如何重构文件结构,而不破坏我的liquibase设置和清空我的数据库?

  • 我们在webapp中使用liquibase 3.0.8已经有一段时间了,数据库更新是由Spring-liquibase bean在应用程序启动时应用的。我们决定从3.1、3.1.1、3.2.0到3.2.3,逐步更新我们的开发数据库,此时更新失败,出现校验和验证错误。我们尝试恢复到3.2.0,但得到了一组不同的校验和错误。我还尝试从3.0.8直接转到3.4.1(编写时的当前版本),并得到相同的校验和