【问题标题】:Liquibase: Add changesets for new databaseLiquibase:为新数据库添加变更集
【发布时间】:2012-07-11 12:59:25
【问题描述】:

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

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

【问题讨论】:

    标签: oracle postgresql liquibase


    【解决方案1】:

    我会尝试使用 Liquibase 的功能来创建跨平台变更集,以 modify the generated SQL 匹配目标数据库。

    【讨论】:

    • 我现在管理的方式是参数化列数据类型,使序列/约束名称更短。我使用了几个表名,它们是 Oracle 中的保留字,因此也必须对它们进行参数化。 重要提示: LiquiBase 为更改日志文件中的每个更改集计算 MD5 校验和,如果与数据库表“ChangeLogLock”中存储的不同,则失败。 LiquiBase 使用三元组(id、作者、文件名)作为变更集的唯一 ID。重复的三元组会导致 LiquiBase 失败。
    猜你喜欢
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2013-04-19
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多