Обработка миграции базы данных вручную становится затруднительной, когда несколько разработчиков или агентов работают параллельно. Кто-то может обновить код приложения, но забыть обновить базу данных, или же изменение схемы может быть произведено непосредственно в шаре...
Обработка миграции базы данных вручную становится затруднительной, когда несколько разработчиков или агентов работают параллельно. Кто-то может обновить код приложения, но забыть обновить базу данных, или же изменение схемы может быть сделано непосредственно в общей среде и никогда не будет добавлено в репозиторий.
Один из способов сделать этот процесс более безопасным — рассматривать миграцию базы данных как код и проверять ее в конвейере CI.
Вы можете передать своему агенту Навык, чтобы он сам во всем разобрался.
В этом посте я буду использовать два инструмента:
Goose для создания, отслеживания и применения миграций.
Atlas для сравнения ожидаемой схемы со схемой в действующей базе данных.
Goose отвечает за применение миграций. Атлас используется здесь для проверки и сравнения схем. Мы также видим различные способы изящного смягчения конфликтов схемы.
Основная идея
Рабочий процесс состоит из двух частей:
При развертывании приложения запустите Goose перед развертыванием новой версии приложения.
При открытии запроса на включение запустите миграцию во временную базу данных и проверьте наличие смещения схемы.
Это дает нам возможность автоматической проверки перед слиянием и автоматического этапа миграции во время развертывания.
Шаг 1. Установите Goose и Atlas
Установите Goose с помощью Go: