feat: split initial social schema migration chain

replace monolithic migration with ordered scripts, include profiles/sessions in migration, and verify full downgrade/upgrade cycle for clean Supabase bootstrap
This commit is contained in:
qzl
2026-02-26 17:58:37 +08:00
parent 2994cc708c
commit 6641eba9df
22 changed files with 2242 additions and 23 deletions
@@ -3,15 +3,25 @@ from __future__ import annotations
from pathlib import Path
def test_agent_chat_migration_exists_and_creates_expected_tables() -> None:
def test_initial_migration_exists_and_creates_expected_tables() -> None:
versions_dir = Path(__file__).resolve().parents[3] / "alembic" / "versions"
migration = versions_dir / "20260226_create_agent_chat_core_tables.py"
migration_files = sorted(versions_dir.glob("20260226_*.py"))
assert len(migration_files) == 5, "split initial migrations should exist"
assert migration.exists()
content = "\n".join(m.read_text(encoding="utf-8") for m in migration_files)
content = migration.read_text(encoding="utf-8")
assert 'create_table(\n "llm_factory"' in content
assert 'create_table(\n "llms"' in content
assert 'create_table(\n "sessions"' in content
assert 'create_table(\n "messages"' in content
assert "tool_calls" not in content
# New tables from social data model redesign
assert "create_table(" in content and "automation_jobs" in content
assert "create_table(" in content and "user_agents" in content
assert "create_table(" in content and "memories" in content
assert "create_table(" in content and "friendships" in content
assert "create_table(" in content and "groups" in content
assert "create_table(" in content and "group_members" in content
assert "create_table(" in content and "schedule_items" in content
assert "create_table(" in content and "schedule_subscriptions" in content
assert "create_table(" in content and "inbox_messages" in content
assert "create_table(" in content and "todos" in content
assert "create_table(" in content and "todo_sources" in content
assert "create_table(" in content and "profiles" in content
assert "create_table(" in content and "sessions" in content
assert "create_table(" in content and "messages" in content