ORM and migrations demo webinar code | Yandex Praktikum
Install required dependencies
pip install -r requirements.txt
Краткий экскурс в проект. Что мы хотим спроектировать? (models_v1)
- обзор Trello
- обзор моделей
Что такое миграции? Зачем они нужны?
- плюсы и минусы ORM
- сравнение создания таблиц при помощи миграций и сырого SQL
- сравнение вызова сырого SQL и вызова через ORM
- миграции django по умолчанию
- фиксированная директория
- команды для создания и применения (+ указание приложения, указание имени миграции)
- таблица django_migrations для хранения примененных миграций
Рефакторинг — замечаем несоблюдение DRY (models_v2)
Требование от заказчика — архивные задачи должны показываться только в админке и больше нигде (models_v3)
Рефакторинг — разделяем модели по модулям (models_v4)
Требование от заказчика — сохранять историю действий с задачей (models_v5)
- переопределение метода save() - как устроено сохранение changelog
Требование от заказчика — хранить время в часах неудобно, нужно перевести на минуты
Рефакторинг — сжимаем миграции
python manage.py migrate trello zero
rm trello/migrations/*
touch trello/migrations/__init__.py
python manage.py makemigrations
python manage.py migrate
python manage.py squashmigrations trello <migration_name>
Прочее