Files
2026-06-01 18:47:59 +03:00

23 lines
701 B
Python

"""Declarative base with a fixed naming convention.
The naming convention makes Alembic autogenerate deterministic, named
constraints — essential for clean, reversible migrations.
"""
from sqlalchemy import MetaData
from sqlalchemy.orm import DeclarativeBase
NAMING_CONVENTION = {
"ix": "ix_%(column_0_label)s",
"uq": "uq_%(table_name)s_%(column_0_name)s",
"ck": "ck_%(table_name)s_%(constraint_name)s",
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
"pk": "pk_%(table_name)s",
}
class Base(DeclarativeBase):
"""Base for all ORM models. Import models so Alembic sees their metadata."""
metadata = MetaData(naming_convention=NAMING_CONVENTION)