fix(migrations): enforce schema ownership safety

This commit is contained in:
caoxiaozhu
2026-07-14 09:23:34 +08:00
parent 1347366b95
commit 11275e4ba6
18 changed files with 755 additions and 57 deletions

View File

@@ -0,0 +1,22 @@
from __future__ import annotations
from sqlalchemy.engine import Connection, Engine
from app.db.base import Base
MIGRATION_OWNED_TABLES: frozenset[str] = frozenset(
{
"auth_sessions",
"expense_cases",
"expense_case_links",
"business_events",
}
)
def create_legacy_schema(bind: Engine | Connection) -> None:
"""创建仍由旧 bootstrap 管理的表,不越过 Alembic 的表所有权边界。"""
legacy_tables = [
table for table in Base.metadata.sorted_tables if table.name not in MIGRATION_OWNED_TABLES
]
Base.metadata.create_all(bind=bind, tables=legacy_tables)