2016-03-29 4 views
1

Я разрабатываю и внесли изменения в db. Прежде чем совершить действие, я должен добавить изменения в свои наборы изменений. Поэтому я делаю liquibase --url="...;name=db_dev" diff, но он запрашивает у меня параметры ссылки. Однако я не хочу сравнивать db url с другим db. Я хочу сравнить наборы изменений (файлы) с целевым db.Наборы изменений дифференциала Liquibase и база данных

Возможно ли это?

ответ

3

Я думаю, вы можете использовать Liquibase нестандартным способом.

Предполагаемый шаблон использования заключается в том, что вы создаете необходимые изменения схемы, создавая «набор изменений» Liquibase (в XML, JSON или Liquibase structured SQL), а затем используя liquibase update, чтобы развернуть это изменение для каждого из экземпляров базы данных ,

Во втором шаблоне использования вы внесете изменения непосредственно в базу данных, используя любой инструмент манипуляции с базами данных, который вы предпочитаете, а затем с помощью liquibase diffChangelog, чтобы добавить соответствующий набор изменений в ваш файл изменений. После создания набора изменений вам необходимо использовать команду liquibase changelogsync, чтобы заполнить таблицу Liquibase DATABASECHANGELOG в базе данных информацией о том, что новый набор изменений уже «развернут» в базе данных. Второе использование требует, чтобы вы либо:

  • сравнить два живых базы данных (например, вы могли бы сравнить «тест» или базы данных «промежуточные» в зависимости от того, баз данных вручную изменены)
  • создать «снимок» баз данных перед внесением изменений вручную, затем внесите изменения, а затем сравните базу данных с моментальным снимком. This page on the Liquibase blog описывает, как использовать команду liquibase snapshot для создания моментального снимка и как использовать этот снимок как «автономную базу данных» для сравнения.

This page in the Liquibase documentation содержит более подробную информацию об использовании шаблонов при начале работы с Liquibase.

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