4heck / yandex_praktikum_orm_migrations

ORM and migrations demo webinar code | Yandex Praktikum

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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>

Прочее

About

ORM and migrations demo webinar code | Yandex Praktikum


Languages

Language:Python 100.0%