liquibase sqlFile жалуется, что «Файл не существует» - PullRequest
1 голос
/ 30 января 2020

Итак, некоторое время назад я переместил все наши функции базы данных и просмотрел отдельные файлы для лучшего контроля изменений. Сегодня я удалил функцию и поэтому удалил файл для этой функции. Однако оригинальный changeLog из 2019.Q2.R1 по-прежнему ссылается на файл, а liquibase жалуется, что файл сейчас не существует.

15:39:35 SEVERE 1/29/20 10:39 PM: liquibase: changelogs/catalog/catalog.db.changelog-2019.Q2.R1.xml::US122742.17::vrodrigu: File does not exist: 'functions/update_daily_take_ingest_date_func.sql'

Мы следуем рекомендациям, рекомендованным liquibase, где у нас есть основной файл журнала изменений, который затем включает все файлы журнала изменений, по одному для каждого нового выпуска. На удаленный файл все еще ссылается старый файл журнала изменений catalog.db.changelog-2019.Q2.R1. xml, который, как следует из названия, относится ко второму кварталу прошлого года.

Что является лучшим практиковаться в таких ситуациях? Должен ли файл, на который ссылаются старые элементы sqlFile, никогда не удаляться? Должен ли я go вернуться к старым ссылкам и устранить эти ссылки? Последнее будет менять историю, и тот, кто смотрит на этот старый файл журнала изменений, не будет мудрее. Есть ли какой-либо флаг или атрибут, который я могу поставить в свои журналы изменений, чтобы они не жаловались на то, что файл не существует, если он будет удален в будущем?

Не уверен, что лучший подход. Заранее спасибо за помощь!

1 Ответ

1 голос
/ 30 января 2020

Рекомендуется написать еще один набор изменений, в котором вы удалите функцию и добавите ее в свой проект в качестве нового файла.

Предполагается, что ChangeLogs и changeSets являются неизменяемыми. Эта идея является одним из краеугольных камней Liquibase-подобных инструментов. Вы должны только добавлять новые наборы изменений, чтобы изменить существующую структуру базы данных (даже если добавляемые наборы изменений удаляют что-то).

Следовательно, изменение или удаление существующих наборов изменений (или файлов changeLog) - это напротив передовой практики.

...