Страницы

Поиск по вопросам

вторник, 18 июня 2019 г.

Откат изменений в базе данных после Exeptions

Разрабатываем командный проект на Python с использованием Django. Хранение кода и поддержка версионности через gitlab. При push нового кода, идет заливка на сервер. Структура базы данных меняется за счет migrate в Django. Как быть с данными в БД? Например, идут изменения: столбик удалился, залились новые записи, удалились записи (строки). В какой-то момент вылетел Exeption. Структуру можно откатить через все те же migrations, a как откатить изменения данных?? (чтобы вернуть сервер в предыдущее рабочее состояние) Размеры базы десятки терабайт, по этой причине "до изменений сделать резервную копию, и, если слетело, подставить копию" не вариант. Какие есть идеи или отработанные подходы, стандартные сервисы?


Ответ

Иначе подходите к проектированию изменений БД. Разносите по времени изменение кода и БД. Сначала меняйте код так, чтобы он работал одновременно на текущей и на новой схемах БД. Протестируйте этот код и выкатывайте в продакшн. Если какие-то ошибки произойдут на этом этапе, просто откатите код. Когда Вы убедитесь, что новый код работает и ошибок нет, выкатывайте новую схему БД.

Комментариев нет:

Отправить комментарий