目前我使用的是一个oracle模式,它是用liquibase维护的。liquibase xml有一些特定于oracle的数据加载查询用法和使用序列等(也有一些特定于oracle的用法)。
我想转到postgres。有没有可能从oracle schema生成ChangeLog来针对postgres db执行它(或者完全特定于liquibase的changelog,以便在运行时自动将其转换为目标数据库)?我在generatechangelog上没有看到指定目标数据库类型的选项。有什么办法可以做到吗?
2条答案
按热度按时间ovfsdjhp1#
是的,这是可能的,尽管当您在考虑多个DBMS的情况下启动更新日志时会更容易。
<createSequence>
的更改应该是好的,但是如果你有任何对.nextval
的显式调用,这些更改就需要更改了。您可以根据当前DBMS有条件地运行changeSets:
或者使用
dbms="oracle"
。我认为(虽然不确定)DBMS属性不会更改MD5校验和,因此您可以更改现有的更改日志,而不会破坏现有的安装。你需要调整你当前的更新日志的程度取决于你在更新时的具体程度。例如,指定数据类型,e.例如,由于显而易见的原因,您不能使用
varchar2
,并且更改将更改MD5校验和,这将中断对现有安装运行更新日志。我会尝试更改更改日志,你必须尽可能独立于DBMS,然后咬紧牙关,用
clearCheckSums
对现有安装运行一次。tzdcorbm2#
您也可以忽略Oracle现有的更改日志,并使用generate-changelog liquibase命令创建一个新的更改日志。使用此方法,数据迁移必须单独完成。