Skip to content

Latest commit

 

History

History
79 lines (51 loc) · 3.42 KB

File metadata and controls

79 lines (51 loc) · 3.42 KB

starterKit Database

Документ о том, как оформлять модель данных для будущих проектов на этом шаблоне

Database Migrations


Содержание


Назначение

Этот документ нужен не для описания конкретной базы данных, а для фиксации принципов, по которым будущий проект будет оформлять модель данных и миграции

Приоритет всегда у исполняемых миграций и схемы, которая живёт в кодовой базе рядом с приложением


Модель данных

Пока проект не выбран, модель данных описывается на уровне будущих доменных областей

Область Что обычно хранит
Пользователи Аккаунты, роли, настройки
Контент Основные бизнес-объекты проекта
Связи Подписки, связи, принадлежность
История События, логи, аудит

Если для конкретного форка появятся собственные сущности, их нужно документировать рядом с соответствующим модулем и в общем описании модели


Миграции

Параметр Правило
Хранение Миграции лежат рядом с backend или другим исполняемым модулем
Формат имени Понятный префикс, номер и краткое описание
Единица изменения Одна миграция = одно логическое изменение
Редактирование После применения миграции в shared-окружении она не переписывается

Что обычно фиксировать

  • создание таблиц;
  • добавление индексов;
  • ограничения и внешние ключи;
  • миграции данных;
  • обратимые шаги, если они предусмотрены

Правила изменений схемы

  • изменения должны быть обратно совместимыми, если это возможно;
  • потенциально долгие операции нужно выносить отдельно;
  • каждое структурное изменение должно иметь причину;
  • удаление полей допускается только после этапа deprecation;
  • документ должен обновляться вместе с моделью