Мой пакет автомиграций [идея]
- [Идея!] создание связей link, unlink + автосвязи, mediaLink, mediaUnlink (понравилась идея репозитория отвечающего только за связывание записей UserRepo RoleRepo UserRoleRepo
Манифест автомиграции
Синхронизация БД должна соответствовать коды который замыслил программист. Миграция - способ версионирования бд. Каждая миграция - это аналог коммита в гит. Думаешь про одно состояние структуры, а по факту там уже другое.
Code style для миграций:
- Таблицы и колонки не удаляются
- Все колонки null
- Колонки типа bool, статусов - имеют значения по умолчанию
Отлуп:
- если колонка уже есть,
- если переименование колонки,
- если тип данных не соответствует представлению
- если слили модель и в ней есть два раза добавление колонки
! Что бы проверить корректность работы пишутся тесты. ! Если несколько модулей будут создавать одинаковые таблицы (колонки), миграции должны падать.
Проблема:
- Вася создал колонкку (position) и записал в нее данные женат
- Петя создал колонку (position) и записал в нее данные программист
Как в доктрине. Генерация реальных файлов с миграциями на основе диффа модели и состояния БД. Делало слепок и создавало актуальную миграцию
Здесь можно оставить комментарий!