2012-01-10 8 views
2

Есть ли хороший или рекомендуемый инструмент, который управляет миграциями DDL и DML?Сценарии миграции для структуры и данных

Большая часть конфигурации моего приложения хранится в базе данных, я хочу иметь возможность свободно разрабатывать и переносить это, а не только DDL. Любые предложения по этому поводу?

ответ

0

Проверка различных инструментов, решение для нас заключалось в уточнении DBUnit для поддержки сценариев миграции. Структура XML в качестве вывода позволяет использовать очень хорошее решение для управления версиями и кросс-решений (мы работаем как с DB2, так и с Oracle).

1

Liquibase обрабатывает DML, а также DDL. http://liquibase.org/manual/refactoring_commands перечисляет доступные теги, включая insertData, loadData, deleteData и т. Д.

+0

Спасибо. В последнее время я попытался взглянуть на Liquibase, у него не было возможности исключить таблицы из выписок DML или отфильтровать запрос SELECT. Это заставило приложение скрыться с OutOfMemory Exception. Это уже изменилось? –

+0

Я предполагаю, что вы говорите о том, когда вы делаете базу данных diff/generateChangeLog? В настоящее время вы не можете исключать таблицы или части данных, если вы запрашиваете вывод данных. Вы можете указать, какие таблицы (ы) включить, но не «все, кроме X». Поддержка diff/generateChangeLog в Liquibase не является нормальной частью процесса переноса данных, поэтому не просто используйте начальную настройку в качестве причины использовать или не использовать Liquibase. –

+0

Вы можете использовать groovy, чтобы сбрасывать большие объемы данных в качестве набора изменений Liquibase. См. Ответ на этот вопрос: http://stackoverflow.com/questions/8397488/comparing-databases-and-genrating-sql-script-using-liquibase/8408334#8408334 –

3

И Flyway, и Liquibase могут иметь дело с DML.

Говоря с точки зрения пролетного пути, Flyway был построен с нуля с учетом как DDL, так и DML (конфигурации, справочных данных, ...). Весь диапазон команд DML может использоваться, поскольку миграции записываются как простые файлы SQL.

Для более детального сравнения обеих фреймворков смотрите на этом question и comparison matrix на главной странице прохода.