Изменение схемы БД: миграция в репозитории против ручного ALTER
Для новой фичи нужно добавить колонку orders.promo_code. Коллега предлагает: «Быстрее всего зайти на прод и выполнить ALTER TABLE, а в репозитории просто поправить модель ORM».
Почему в командной разработке так не делают?
- Потому что PostgreSQL не позволяет менять схему на работающей базе: `ALTER TABLE` требует остановки приложения
- Потому что ORM при старте сама приводит схему базы к описанным моделям, и ручное изменение будет затёрто на деплое
- Потому что изменения базы и кода должны выезжать разными релизами, иначе их нельзя откатывать по отдельности
- Потому что ручное изменение нигде не зафиксировано: его не воспроизвести на других стендах и не связать с релизом кода
