Liquibase - 从oracle架构生成changelog以迁移到postgres

问题描述 投票:0回答:1

目前我在使用liquibase维护的oracle架构。 liquibase xmls对dataload和使用序列等的查询具有一些oracle特定用法(也是oracle特有的一些用法)。

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

oracle postgresql liquibase
1个回答
0
投票

是的,这是可能的,尽管在您考虑多个DBMS的情况下启动更改日志时更容易。

<createSequence>更改应该没问题,但是如果你有任何明确的调用.nextval那些需要改变。

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

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

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

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

我会尝试更改您必须尽可能多的DBMS独立更改日志,然后咬住子弹并使用clearCheckSums对现有安装运行一次。

© www.soinside.com 2019 - 2024. All rights reserved.