Мой пакет автомиграций [идея]


Манифест автомиграции

Синхронизация БД должна соответствовать коды который замыслил программист. Миграция - способ версионирования бд. Каждая миграция - это аналог коммита в гит. Думаешь про одно состояние структуры, а по факту там уже другое.

Code style для миграций:

  • Таблицы и колонки не удаляются
  • Все колонки null
  • Колонки типа bool, статусов - имеют значения по умолчанию

Отлуп:

  • если колонка уже есть,
  • если переименование колонки,
  • если тип данных не соответствует представлению
  • если слили модель и в ней есть два раза добавление колонки

! Что бы проверить корректность работы пишутся тесты. ! Если несколько модулей будут создавать одинаковые таблицы (колонки), миграции должны падать.

Проблема:

  • Вася создал колонкку (position) и записал в нее данные женат
  • Петя создал колонку (position) и записал в нее данные программист

Как в доктрине. Генерация реальных файлов с миграциями на основе диффа модели и состояния БД. Делало слепок и создавало актуальную миграцию





Здесь можно оставить комментарий!