6. (П3) Еволюція погодного сервісу з Alembic¶
Передумови¶
- Виконана практична 3 (погодний сервіс з PostgreSQL)
- Запущений PostgreSQL (інструкція запуску через Docker)
Завдання¶
Взяти за основу свій проєкт з практичної 3 та додати до нього Alembic для управління міграціями. Таблицю, яку ви створювали вручну (через Python-код), тепер потрібно створювати через міграції Alembic.
Крок 1. Ініціалізація Alembic¶
- Встановити Alembic:
pip install alembic - Ініціалізувати Alembic у проєкті:
alembic init alembic - Створити нову (порожню) БД
- Налаштувати підключення до БД в
alembic/env.py(див. лекцію 05)
Крок 2. Міграція — створення таблиці weather¶
Створити міграцію, яка створює таблицю weather (ту саму, що була в практичній 3):
Заповнити функції upgrade() та downgrade() у створеному файлі міграції.
Видалити з Python-коду ручне створення таблиці — тепер за це відповідає Alembic.
Застосувати міграцію:
Переконатися, що сервіс працює як і раніше.
Крок 3. Міграція — додати вологість¶
Створити міграцію, яка додає колонку humidity (вологість) до таблиці weather:
Отримати вологість можна з wttr.in:
Оновити Python-код сервісу:
- Зберігати вологість разом з температурою. (Якщо ваш сервіс не повертає вологість, можна обрати любий інший параметр)
- Виводити вологість в команді
history
Крок 4. Демонстрація відкату¶
Продемонструвати роботу відкату міграцій:
# Перевірити поточний стан
alembic current
# Відкатити останню міграцію
alembic downgrade -1
# Перевірити стан
alembic current
# Повернутися до останньої версії
alembic upgrade head
Формат виводу команди history¶
Weather history from: <Ім'я Прізвище>:
<Час> <температура> <вологість> <швидкість вітру>
...
<Час> <температура> <вологість> <швидкість вітру>
Час має бути відсортований у спадному порядку.
Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub