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

LiquiBase:为新数据库添加变更集

百里鸿祯
2023-03-14

我有一个使用Liquibase for PostgreSQL定义的现有模式。我正在添加对Oracle的支持,这需要进行重大更改。有些create-table标记只需更改数据类型即可工作,有些则不然(需要sql更改)。当前的changelog-schema文件在单个change-set下有多个create-table语句(我知道这不是一个好的设计,但这正是我现在要处理的),为了重用那些create-table标记,我可能必须从现有的change-set中删除它们并添加到新的change-set中。liquibase代码是使用spring注入的,因此,每当我的应用程序启动时,它都会检查数据库是否有任何更改。重构(如前所述)会影响liquibase在现有html" target="_blank">数据库上创建的哈希代码吗?如果是这样的话,我认为在这种情况下,可以为Oracle复制create-table标记。

我对LiquiBase比较陌生。如果我的理解有误,请指正。

共有1个答案

翟弘
2023-03-14

我将尝试使用LiquiBase的特性来创建跨平台变更集,以修改生成的SQL以匹配目标数据库。

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

  • 在生产中,数据库用液基changelog.yaml更新,数据库更新成功。 我们对数据库模式进行了一些更改(作为几个增强功能的一部分),例如创建新表、更改表列和创建约束等。 有没有办法使用最新的数据库架构更改自动更新 changelog.yaml?(需要附加到现有的 YAML 文件中,而不是从 SCRACH 重新创建。 因此对生产过渡数据的影响很小)

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

  • 我们仍处于项目的早期阶段,我们正在构建一个包含多个表的数据库。列出的两个工具都允许我们创建一些DDL / DML文件并跟踪对数据库的更改。无论如何,当结构仍未合并时,这可能会很麻烦。 假设我想添加一个新列,甚至删除一个表:在这两个程序中,我都必须使用ALTER TABLE/etc.命令创建一个新脚本并记录更改。 在terraform中,您只需编写所需的基础设施,当您通过删除节点来更改文件时,该工具

  • 我正在从ListView迁移到RecyclerView,但是在SQLite中输入一些数据之后,我的列表没有使用notifyDataSetChanged()更新;所以我总是必须调用setAdapter()方法; 回收器ViewAdapter 观赏者 模型

  • 问题内容: 我尝试更新我的插件。因此,我必须升级mysql_table。但是当尝试新列时,程序会获得异常。 这是我当前的表格: 现在,我向colum添加多一张桌子。我尝试更改表,一次工作,并添加一列,但又刷新一次,我收到此错误。 这是我的代码 这是我的错误 WordPress数据库错误:[重复的列名’say_state’] ALTER TABLE wp_customer_say添加了say_sta