Я разрабатываю локально, но после нужно тестировать на данных из реальной базы. Мне приходится делать её дамп, переносить на своей сервер, а потом разворачивать у себя. А потом бывает ещё миграции наложить. Всё это занимает 15-20 минут, а порой быстро порчу данные в базе и нужно снова всё повторить. База весит 1,5гб и не собирается уменьшаться.
Думал сделать мастер-слейв и сразу переключаться на слейв, но если я испорчу базу, то нужно ждать пока слейв снова всё подтянет.
Как можно мгновенно переключаться на копию рабочей базы данных?
Мой Путь, это не важно. В хороших проектах вам никто доступ к данным не даст ибо не положено. Б - безопасность. Тестируйте на кошках, на моках и все такое
Иван Шумов, Это тоже не правда. Я читал, что все тестят на реальной базе рядом с продакшеном. Если всё ок, то переводят с помощью nginx (как вариант) на новую версию проекта.
Мой Путь, второе утверждение верно, так работает запуск нового релиза в виде canary release и blue-green deployment. Первое - полное заблуждение. Не надо слушать тех что так пишут
Иван Шумов, ну например бывает такое не предвиденное: изменили логику отображения данных. И так получилось, что лишь у одного пользователя были специальные символы в полях, которые никто не ставил кроме этого пользователя.
И эту проблему нашли именно у этого пользователя, когда в ручную случайно проверили его аккаунт.
Как с таким быть? Ждать пока юзер сам скажет, что у вас всё дерьмово работет?
Мой Путь, о том что кто-то нашел ошибку и причину. Вам должны поставить задачу с примером, который вызывает ошибку. Обычно такие вещи приходят из саппорта
Ну вот как вариант. Взять образ докера с СУБД. Написать скрипт, который пересобирает образ с заливкой дампа и восстановлением из дампа. 1,5 Гб не так уж и много. Дамп вы все равно снимаете и восстановление из дампа на рядом лежащей бд делаете, так что по времени одинаково. Магия начинается позднее. Контейнер из готового образа разворачивается минут за 5 (У нас полноценный инстанс с обновлениями и т.д. весит порядка 20Гб и все это хозяйство поднимается из образа в полноценный рабочий инстанс за 3-5 минут). Спортили данные, убили контейнер развернули новый
Мой Путь, да, Это единичный случай. А тестировать на всех данных брутфорсом неблагодарное и нереальное дело. Все баги при самом тщательном тестировании не найти. нарваться на такого пользователя - это вероятность сломать палец о клавиатуру.