2015-09-30 2 views
0

У меня есть два файла схемы базы данных, оба они пустые. Предположим, что есть версия 1 и версия 2 схемы базы данных в db.v1.sql и db.v2.sql.Создать разницу обновления базы данных с помощью Liquibase

Я хотел бы создать diff, который обновит базу данных с помощью схемы db.v1.sql до db.v2.sql.

Может ли Liquibase это сделать? Есть ли еще один инструмент для работы с Java?

+0

Вы используете простой jdbc для подключения? или некоторый слой орма? –

+0

Слой ORM - EclipseLink. – zeal

ответ

2

Да, это возможно с использованием Liquibase.

  1. Создайте файл changelog.xml, в котором перечислены .sql-файлы в виде отдельных наборов изменений. Подумайте об этом файле как «tempChangeLog.xml». В этом файле добавьте атрибут метки к каждому из наборов изменений с помощью «v1» или «v2».
  2. Используйте liquibase update, чтобы применить первую метку к первому экземпляру базы данных.
  3. Используйте «liquibase generateChangelog», чтобы «конвертировать» sql в linibase xml changesets. Это будет ваш «realChangeLog.xml»
  4. Измените «realChangeLog.xml», чтобы добавить атрибут метки «v1» ко всем наборам изменений.
  5. Используйте liquibase update с помощью «tempChangeLog.xml», чтобы применить вторую метку ко второму экземпляру базы данных.
  6. Используйте команду liquibase diffChangelog для сравнения экземпляра базы данных 1 с экземпляром базы данных 2, добавляя изменения в «» realChangeLog.xml
  7. Изменить «realChangeLog.xml» еще раз, чтобы добавить «v2» наклейки ко всем новым ревизиям.

Теперь у вас есть файл changelog.xml, который может быть использован для обновления базы данных до версии v1 или v2.

Синхронизация новых изменений с ORM - это отдельное упражнение.

+0

Я хотел бы иметь выход sql-файла. Возможно ли это? Причина в том, что я хотел бы сделать некоторые пользовательские изменения в файле и представить его перед использованием в качестве обновления на реальном db. – zeal

+0

@zeal взгляните на команду updateSql. – dbf

+0

@zeal См. Http://stackoverflow.com/questions/8397488/comparing-databases-and-genrating-sql-script-using-liquibase/ –

Смежные вопросы