Там нет ни одного ответа, что лучше всего работает, зависит от окружающей среды, процесса, и почему вы хотите, чтобы урезать их вниз.
Как правило, я рекомендую вам просто изменить ваш журнал изменений, поскольку существующие шаги - это те, которые вы протестировали, развернули и знаете правильно. Изменение их представляет собой риск, который всегда можно избежать. Сохранение изменений в вашем журнале изменений также позволяет вам продолжать загружать новые базы данных dev/QA так же, как и старые экземпляры.
Несмотря на то, что существует значительное изменение производительности при наличии большого журнала изменений, Liquibase пытается свести его к минимуму и в основном просто разбирает файл изменений, а затем считывает из таблицы DATABASECHANGELOG, которая должна хорошо масштабироваться. Так как liquibase update
обычно запускается редко, даже если для его запуска требуется несколько секунд, это часто не очень важно.
Все, что уже сказано, есть моменты, когда есть смысл прояснить ваш журнал изменений. Лучший способ сделать это зависит от того, какую проблему вы пытаетесь решить.
Самый простой подход - это просто удалить ссылки на ваши самые старые файлы изменений. Если вы знаете, что все ваши базы данных имеют изменения. Наборы в ABC.xml и DEF.xml уже применяются, вы можете просто удалить ссылки на них из своего основного журнала изменений, и все будет в порядке. Liquibase все равно, есть ли в таблице DATABASECHANGELOG «неизвестные» изменения. Если вы хотите продолжить развертывание dev и QA-сред с помощью ABC.xml и DEF.xml, вы можете создать второй унаследованный «master changelog.xml», который включает их, и при необходимости запустить оба списка изменений или убедиться, что устаревший журнал изменений содержит как старые и новые изменения.
Если вы не хотите полностью удалять ссылки changeLog, вы можете вручную изменить существующие наборы изменений. Часто есть несколько изменений, которые могут иметь большое значение в производительности обновления. Например, если индекс был создан, а затем удален, вы можете пропустить стоимость создания, удалив drop и создайте changeSets. Опять же, Liquibase не заботится о базах данных, которые уже запускали changeSets и не будут видеть их для новых. Если у вас есть несколько баз данных который может по-прежнему иметь индекс и вы хотите его удалить, вы можете использовать условие indexExists на drop changeSet afte Вы удаляете команду create changeset.
Предварительные условия могут быть дорогими, особенно в зависимости от поставщика базы данных. Иногда удаление ненужных предварительных проверок также может повысить производительность.