Liquibase - создание журнала изменений из схемы оракула для перехода на postgres - PullRequest
0 голосов
/ 08 марта 2019

В настоящее время я нахожусь на схеме оракула, которая поддерживается с жидкой базой.Xml-файлы liquibase имеют некоторые специфичные для оракула запросы на передачу данных, последовательности и т. Д. (Также некоторые специфичные для оракула).

Я бы хотел перейти на postgres.Можно ли сгенерировать ChangeLog из схемы Oracle для его выполнения на базе данных postgres (или в журнале изменений, полностью зависящем от ликвидазы, чтобы он автоматически преобразовывал его в целевую базу данных во время выполнения)?Я не вижу опции для указания целевого типа базы данных в generatechangelog.Есть ли способ добиться этого?

1 Ответ

0 голосов
/ 08 марта 2019

Да, это возможно, хотя это проще, когда вы запускаете журнал изменений с учетом нескольких СУБД.

<createSequence> изменения должны быть в порядке, однако, если у вас есть какие-либо явные вызовы .nextval, их нужно будет изменить.

Вы можете запускать changeSets условно в зависимости от текущей СУБД:

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

или используйте dbms="oracle". Я думаю (хотя и не уверен), что атрибут СУБД не изменяет контрольную сумму MD5, поэтому вы можете изменить существующий журнал изменений, не нарушая при этом существующие установки.

Сколько вам нужно настроить текущий список изменений, зависит от того, насколько конкретно вы были, когда, например. указание типов данных, например, вы не можете использовать varchar2 по понятным причинам, и изменение этого значения изменит контрольную сумму MD5, что приведет к нарушению работы журнала изменений в существующих установках.

Я бы попытался изменить список изменений, чтобы вы были настолько независимыми от СУБД, насколько это возможно, а затем прикусил бы пулю и запустил ее один раз с clearCheckSums для существующих установок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...