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

更新旧变更集-Liquibase

长孙正卿
2023-03-14

我们使用liquibase对数据库进行源代码控制。最初,我们从Postgres开始,创建了数据类型为特定于Postgres的列的变更集。

例如,我们有一个变更集,它创建了具有“JSON”类型字段的表。现在,我们想转移到其他数据库。因此,当我们针对另一个数据库运行变更集时,它无法创建表。我尝试添加“failOnError=false”。但是,后面的变更集失败,因为该表不存在。

您能建议如何重构旧的变更集以使其与其他数据库兼容吗?

共有1个答案

汤承允
2023-03-14

您可以使变更集特定于数据库。您可以尝试重新创建变更集以在新数据库中工作,并将等于新数据库的“dbms”属性添加到新变更集。在向旧变更集添加相同属性但具有旧DB的同时。

 类似资料:
  • 我在酗酒方面遇到了麻烦。出于某种原因(我没有更改任何现有的变更集或其他东西),它试图应用已经在base中的变更集。所以我得到了一些错误,比如“关系”表“已经存在”。 我找到了这个标签-

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

  • 我们在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(编写时的当前版本),并得到相同的校验和

  • 我已经向migrations.xml添加了新的变更集,但是当我运行时,它不会应用新的变更集,只是输出如下: 我有两个变更集,只应用了第一个变更集。例如: 另外,我只看到数据库更改日志表下的第一个更改集条目,这很奇怪。 如何使其应用我的新变更集?

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

  • Liquibase提供了一个标记,允许在我们要修改现有变更集的情况下指定一个新的校验和。 但是,对于SQL格式的变更集,此标记不是有效的属性。有,但这是不同的。