Синхронизация резервного копирования MySQL с тегами GIT

У нас есть большое приложение Yii2 / PHP, использующее базу данных MySQL и управляемое GIT. Приложение находится в постоянном развитии, поскольку клиентам требуются новые функции. База данных меняется довольно часто. Версия приложения контролируется с помощью GIT (каждая производственная версия получает новый тег GIT) и выполняется ежедневное резервное копирование.

Когда что-то выходит из строя, нам нужно восстановить одну из наших последних резервных копий базы данных. Иногда в случае проблем с базой данных восстановление не удается из-за недавних обновлений приложения. И наоборот (к счастью, этого еще не было!): Если приложение дает сбой (например, сервер взломан), нам нужно знать, к какому тегу GIT принадлежит база данных.

Как мы можем гарантировать, что база данных и приложение синхронизированы?

Существуют ли сценарии или передовой опыт?

Кстати: мы не хотим включать резервную копию базы данных в управление версиями git (см. здесь )

-1
задан 12 April 2017 в 10:31
1 ответ

Это обычно делается путем добавления некоторой логики в приложение. Когда приложение запускается, оно должно проверить совместимость схемы БД (например, поместив тэг в какую-нибудь таблицу БД). Если схема базы данных слишком стара для данного релиза приложения, приложение может автоматически применить необходимые сценарии миграции. Если схема БД слишком старая, приложение должно отказаться от работы

.
1
ответ дан 5 December 2019 в 19:50

Теги

Похожие вопросы