Объединить несколько наборов изменений на базе liquibase в один

#liquibase #changeset

#liquibase #набор изменений

Вопрос:

Я использую liquibase для управления своей БД и начал проект с одного набора изменений, в котором создаются все основные таблицы. Теперь мой клиент хочет изменить эту базу данных, и я запускаю дополнительные наборы изменений, но я боюсь, что через некоторое время это станет беспорядком (например, разработчикам будет нелегко читать), поскольку первый набор изменений теперь не является реальным представлением схемы базы данных.

Пример :

 <changeset id="1" author="natty">
  <createTable tableName="my_table">
    <column name="my_column" type="integer" />
  </createTable>
</changeset>
<changeset id="2" author="natty">
  <addColumn tableName="my_table">
    <column name="another_column" type="varchar(10)" />
  </addColumn>
</changeset>
[...]
<changeset id = "100" author="natty">
 ...
</changeset>
 

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

Как я могу избежать наличия нескольких наборов изменений?

Ответ №1:

Вы не должны изменять свои наборы изменений. Предполагается, что вы должны добавлять только новые наборы изменений. Изменение наборов изменений является антишаблоном.

Если вам нужно добавить изменения в схему вашей базы данных, вы должны сохранить существующие наборы изменений и написать новые.

Если вы не хотите, чтобы ваш файл журнала изменений был слишком большим, создайте родительский файл журнала изменений и несколько дочерних файлов журнала изменений (см. Теги include или includeAll ). Вы можете создавать новый дочерний файл журнала изменений, например, каждый месяц, или каждую неделю, или по какой-либо другой логике.

И если вы действительно хотите обрезать свой список изменений, я предлагаю вам сначала прочитать статью «Обрезка журналов изменений».