Liquibase: добавить ревизии для новой базы данных

У меня есть существующая схема, определенная с помощью Liquibase для PostgreSQL. Я добавляю поддержку Oracle, и это требует значительных изменений. Некоторые теги create-table будут работать, просто изменяя типы данных, некоторые - нет (требуя изменений sql). Текущий файл схемы изменений содержит несколько операторов создания таблицы в одном наборе изменений (я знаю, что это не очень хорошая конструкция, но это то, с чем мне теперь приходится иметь дело), ​​и чтобы повторно использовать некоторые из этих тегов создания таблицы, я возможно, придется удалить их из существующего набора изменений и добавить к новому. Код Liquibase вводится с использованием Spring, в результате чего всякий раз, когда мое приложение запускается, оно проверяет базу данных на наличие изменений. Повлияет ли рефакторинг (как уже упоминалось) на хэш-код, который Liquibase создает в существующей базе данных? Если да, то в этом случае я понимаю, что можно реплицировать теги создания таблицы для Oracle.

Я относительно новичок в Liquibase. Пожалуйста, поправьте меня, если я ошибаюсь в своем понимании.


person devang    schedule 11.07.2012    source источник


Ответы (1)


Я бы попытался создать кросс-платформенные наборы изменений, используя функцию Liquibase, чтобы изменить сгенерированный SQL в соответствии с целевым база данных.

person Mark O'Connor    schedule 12.07.2012
comment
Прямо сейчас мне удалось параметризовать тип данных столбца, сделав более короткие имена последовательностей / ограничений. Я использовал несколько имен таблиц, которые являются зарезервированными словами в Oracle, поэтому их тоже пришлось параметризовать. Важно: LiquiBase вычисляет контрольную сумму MD5 для каждого изменения, установленного в файлах журнала изменений, и терпит неудачу, если отличается от той, которая хранится в таблице базы данных ChangeLogLock. LiquiBase использует тройку (идентификатор, автор, имя файла) как уникальный идентификатор для набора изменений. Повторяющиеся триплеты приводят к сбою LiquiBase. - person devang; 13.07.2012