feat(tenancy): establish cloud isolation foundations

This commit is contained in:
Junyan Qin
2026-07-19 22:39:58 +08:00
parent d7adbeec1e
commit 3f01ffe63b
41 changed files with 1985 additions and 50 deletions
@@ -18,6 +18,7 @@ from typing import TYPE_CHECKING
from alembic.config import Config
from alembic import command
from alembic.runtime.migration import MigrationContext
from alembic.script import ScriptDirectory
if TYPE_CHECKING:
from sqlalchemy.ext.asyncio import AsyncEngine
@@ -59,6 +60,16 @@ def _do_get_current(connection: Connection) -> str | None:
return ctx.get_current_revision()
def get_alembic_head() -> str:
"""Resolve the single release head without opening a database connection."""
cfg = Config()
cfg.set_main_option('script_location', _ALEMBIC_DIR)
head = ScriptDirectory.from_config(cfg).get_current_head()
if head is None:
raise RuntimeError('Alembic has no migration head')
return head
def _do_autogenerate(connection: Connection, message: str = 'auto migration') -> None:
"""Synchronous autogenerate — runs inside run_sync."""
cfg = _build_config(connection)