Сконфигурируйте git для выполнения сравнения при фиксации файлов с другим шаблоном имени, используя flyway - PullRequest
0 голосов
/ 26 ноября 2018

Мы используем git для управления нашими репозиториями кода.

Одним из наших репозиториев является репозиторий миграции базы данных, который использует flywaydb.

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

Проблема заключается в том, что файлы имеют имена, названные последовательно во времении они заменяют один и тот же объект базы данных, такой как представление базы данных, как мы можем настроить git или flyway таким образом, чтобы во время фиксации git был достаточно умен, чтобы различать файл с файлом с другим именем на основешаблон, а не предыдущая версия этого файла?

Например, я создаю представление, и кто-то обновляет это представление через несколько дней ... ему потребуются два файла, такие как:

V20181121131512__create_myview.sql
V20181126235217__replace_myview.sql

В каждом представлении мы СОЗДАЕМ или ЗАМЕНИМ представление и просто обновляем его.Я хотел бы знать, есть ли способ, которым git может быть сконфигурирован так, чтобы он делал изменения при фиксации с шаблоном именования файлов.Например, суффикс, который будет относиться к одному и тому же имени объекта базы данных.

Я не хочу делать ручные сравнения все время, когда есть много запросов на просмотр для просмотра, и я хочу быстроПосмотрите, что изменилось между разными разработчиками, чтобы ускорить мой обзор.Но последовательное именование состояния базы данных с течением времени вынуждает предыдущий код для объекта базы данных в отдельный файл, поэтому каждый коммит для того же объекта базы данных, как SQL представление, «выглядит» как совершенно новый файл, и история отсутствуетчтобы сравнить это с.

Есть мысли о том, как подойти к этому?Можно ли сконфигурировать git для выполнения различий при фиксации по шаблону суффикса именования файлов?Или есть ли другая альтернатива структурированию репо и именования файлов пролетных путей, чтобы со временем можно было решать состояние базы данных?

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете полностью избежать этой проблемы, переключившись на Повторяемые миграции Flyway для всех долгоживущих объектов, которые непосредственно не хранят данные.

Они позволяют сохранять историю вашего обзора втот же файл в Git.Flyway автоматически применит его при изменении контрольной суммы.

...