// личный канал‑лог
gavrilovlog
← все записи

Почему твой проект до-сих-пор без миграций?

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

Комментарии · 2

  • @someexample
    Ты думаешь пробил дно? Я как то писал с нуля проект для компании, так вот они мне сказали удалить миграцию которую я запилил, а еще сказали не делать бд, а только оставить его динамическое проектировние... Другими словами доверить весь этот процесс какой нибудь умной ORM по типу Hibernate
  • @sedliarchuk
    Работаю с php фреймворком Symfony, Doctrine позволяет накатывать базы через миграция или создание таблиц на основе сущностей, по сути и так и так можно получить актуальную базу данных, я не против миграций, они должны быть в проекте, это правильно, просто удивлен что нет альтернативного способа развертывания кроме как дамп