Liquibase -从oracle schema生成更新日志以迁移到postgres

z3yyvxxp  于 2023-04-29  发布在  Oracle
关注(0)|答案(2)|浏览(158)

目前我使用的是一个oracle模式,它是用liquibase维护的。liquibase xml有一些特定于oracle的数据加载查询用法和使用序列等(也有一些特定于oracle的用法)。
我想转到postgres。有没有可能从oracle schema生成ChangeLog来针对postgres db执行它(或者完全特定于liquibase的changelog,以便在运行时自动将其转换为目标数据库)?我在generatechangelog上没有看到指定目标数据库类型的选项。有什么办法可以做到吗?

ovfsdjhp

ovfsdjhp1#

是的,这是可能的,尽管当您在考虑多个DBMS的情况下启动更新日志时会更容易。
<createSequence>的更改应该是好的,但是如果你有任何对.nextval的显式调用,这些更改就需要更改了。
您可以根据当前DBMS有条件地运行changeSets:

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

或者使用dbms="oracle"。我认为(虽然不确定)DBMS属性不会更改MD5校验和,因此您可以更改现有的更改日志,而不会破坏现有的安装。
你需要调整你当前的更新日志的程度取决于你在更新时的具体程度。例如,指定数据类型,e.例如,由于显而易见的原因,您不能使用varchar2,并且更改更改MD5校验和,这将中断对现有安装运行更新日志。
我会尝试更改更改日志,你必须尽可能独立于DBMS,然后咬紧牙关,用clearCheckSums对现有安装运行一次。

tzdcorbm

tzdcorbm2#

您也可以忽略Oracle现有的更改日志,并使用generate-changelog liquibase命令创建一个新的更改日志。使用此方法,数据迁移必须单独完成。

相关问题