【问题标题】:Liquibase - Generate changelog from oracle schema to migrate to postgresLiquibase - 从 oracle 模式生成更改日志以迁移到 postgres
【发布时间】:2019-07-30 19:43:23
【问题描述】:

目前我正在使用 liquibase 维护的 oracle 架构。 liquibase xmls 对数据加载和使用序列等查询有一些特定于 oracle 的用法(还有一些特定于 oracle 的用法)。

我想迁移到 postgres。是否可以从 oracle 模式生成ChangeLog 以针对 postgres db(或完全特定于 liquibase 的更改日志,以便在运行时自动将其转换为目标数据库)执行它?我没有在 generatechangelog 上看到指定目标数据库类型的选项。有什么方法可以实现吗?

【问题讨论】:

    标签: oracle postgresql liquibase


    【解决方案1】:

    是的,这是可能的,尽管当您启动更改日志并考虑到多个 DBMS 时会更容易。

    <createSequence> 更改应该没问题,但是如果您对.nextval 有任何显式调用,则需要进行更改。

    您可以根据当前 DBMS 有条件地运行 changeSets:

    <changeSet dbms="postgresql">
    ...
    </changeSet>
    

    或使用dbms="oracle"。我认为(虽然不确定)DBMS 属性不会更改 MD5 校验和,因此您可以更改现有的更改日志,而不会破坏现有的安装。

    您需要调整当前变更日志的程度取决于您的具体情况,例如指定数据类型,例如由于显而易见的原因,您不能使用 varchar2,并且更改它更改 MD5 校验和,这将破坏针对您现有安装运行更改日志。

    我会尝试更改您必须尽可能独立于 DBMS 的更改日志,然后硬着头皮使用 clearCheckSums 对现有安装运行一次。

    【讨论】:

      猜你喜欢
      • 2021-01-23
      • 2020-02-16
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      相关资源
      最近更新 更多