alembic init alembicСоздаётся:
alembic/
env.py ← главный файл
versions/ ← миграции
alembic.ini
В env.py:
from myapp.models import Base
target_metadata = Base.metadata👉 Это КЛЮЧЕВОЙ момент
Alembic теперь “видит” твою схему
alembic revision --autogenerate -m "create users"Что происходит внутри:
-
Берёт:
- текущую БД (через connection)
- твою
Base.metadata
-
Сравнивает:
DB schema vs SQLAlchemy metadata -
Генерирует код:
def upgrade():
op.create_table("users", ...)alembic upgrade head👉 Alembic:
- читает последний revision
- выполняет
upgrade()
В БД создаётся таблица:
alembic_version
Там хранится:
version_num = "ae1027a6acf"
👉 Это текущая версия схемы
alembic revision --autogenerate -m "msg"→ создать миграцию
alembic upgrade head→ применить всё
alembic downgrade -1→ откатить на 1 шаг
alembic current→ текущая версия
alembic history→ список миграций