Почему твой проект до-сих-пор без миграций?
👁 498↗ 1💬 2
Этот вопрос я как-то задал одному разработчику в стартапе. Абсолютно новый проект и он был в нем единственным Backend-разработчиком.
Когда я решил развернуть локально проект, то не увидел там ни одной схемы миграций, хотя структуры репозиториев были и использовались в коде. Тогда я задал вопрос “Как мне развернуть у себя базу данных”, на что получил гениальный ответ “Сейчас тебе скинем актуальный дамп”. 🤦🏻♂️
В общем и целом дамы и господа, если вы до-сих-пор не используете миграции в своем проекте и для того чтобы раскатить новую фичу в которой есть изменение схемы БД, вы вручную меняете эту схему. А для того чтобы заонбордить новых разработчиков вы скидываете им актуальный dump с прода, чтобы он restore’нул у себя на локалке. И при всем этом, чтобы откатить версию, вы также руками дропаете таблицы и колонки на проде. ТО у меня для вас плохие новости, потому что все это полный абсурд друзья.
И так коротко о причинах, которые должны вас убедить к переходу на миграции если абзац выше еще этого не сделал:
1. Потеря данных: Если изменения вносятся напрямую в базу данных без какого-либо контроля, то существует риск “случайной” потери важных данных.
2. Несоответствие схем: В команде разные участники могут работать с разными версиями схемы базы данных, что может привести к ошибкам и проблемам при интеграции кода.
3. Зависимость от индивидов: Без автоматизированной системы управления изменениями базы данных проект может стать зависимым от определенных сотрудников, которые "знают" историю всех изменений, такие уникумы заменяют систему миграций. Вообще не круто!
4. Проблемы с развертыванием, откатами и совместимостью: Это все я описал абзацем выше.
5. И проблемы с тестированием: Без миграций может быть трудно или даже невозможно автоматически развернуть новую версию приложения на проде, что может вызвать простои и упущенные выгоды для бизнеса.
Я бы послушал ваши истории про то как отсутствие миграций запороли проект, но я надеюсь что такого не было 👍
Обсуждаем тут: @kyb_chat
Подписываемся тут: @knowyourbackend
9
Комментарии · 2
- @someexampleТы думаешь пробил дно? Я как то писал с нуля проект для компании, так вот они мне сказали удалить миграцию которую я запилил, а еще сказали не делать бд, а только оставить его динамическое проектировние... Другими словами доверить весь этот процесс какой нибудь умной ORM по типу Hibernate
- @sedliarchukРаботаю с php фреймворком Symfony, Doctrine позволяет накатывать базы через миграция или создание таблиц на основе сущностей, по сути и так и так можно получить актуальную базу данных, я не против миграций, они должны быть в проекте, это правильно, просто удивлен что нет альтернативного способа развертывания кроме как дамп