Документ о том, как оформлять модель данных для будущих проектов на этом шаблоне
Этот документ нужен не для описания конкретной базы данных, а для фиксации принципов, по которым будущий проект будет оформлять модель данных и миграции
Приоритет всегда у исполняемых миграций и схемы, которая живёт в кодовой базе рядом с приложением
Пока проект не выбран, модель данных описывается на уровне будущих доменных областей
| Область | Что обычно хранит |
|---|---|
| Пользователи | Аккаунты, роли, настройки |
| Контент | Основные бизнес-объекты проекта |
| Связи | Подписки, связи, принадлежность |
| История | События, логи, аудит |
Если для конкретного форка появятся собственные сущности, их нужно документировать рядом с соответствующим модулем и в общем описании модели
| Параметр | Правило |
|---|---|
| Хранение | Миграции лежат рядом с backend или другим исполняемым модулем |
| Формат имени | Понятный префикс, номер и краткое описание |
| Единица изменения | Одна миграция = одно логическое изменение |
| Редактирование | После применения миграции в shared-окружении она не переписывается |
- создание таблиц;
- добавление индексов;
- ограничения и внешние ключи;
- миграции данных;
- обратимые шаги, если они предусмотрены
- изменения должны быть обратно совместимыми, если это возможно;
- потенциально долгие операции нужно выносить отдельно;
- каждое структурное изменение должно иметь причину;
- удаление полей допускается только после этапа deprecation;
- документ должен обновляться вместе с моделью