"""Altlasten der Datenbank-Quellen entfernen; Einstufung der Datenbank-Tools kommt vom Treiber Revision ID: 0023 Revises: 0022 Erstellt: 2026-10-25 18:00:00 """ from alembic import op revision = '0023' down_revision = '0022' branch_labels = None depends_on = None def upgrade() -> None: # Datenbanken sind MCP-Verbindungen; Quellen der Art database und die Tools db_* gibt es nicht mehr. # Regeln je Quelle hängen per CASCADE an der Quelle. op.execute("DELETE FROM data_sources WHERE kind IN ('database', 'postgres')") op.execute("DELETE FROM workspace_tool_policies WHERE tool_name IN " "('db_list_tables', 'db_describe_table', 'db_query')") op.execute("DELETE FROM tool_definitions WHERE kind IN ('database', 'postgres')") # Tools eines Treibers sind das Vorbild; Tools seiner Datenbanken übernehmen ihre Einstufung von dort op.execute(""" UPDATE tool_definitions d SET inherited_from = NULL FROM mcp_servers s WHERE d.kind = 'mcp:' || s.name AND s.role = 'database' """) op.execute(""" UPDATE tool_definitions d SET inherited_from = t.name FROM mcp_servers c JOIN mcp_servers s ON s.id = c.template_id JOIN tool_definitions t ON t.kind = 'mcp:' || s.name WHERE d.kind = 'mcp:' || c.name AND t.fingerprint = d.fingerprint """) def downgrade() -> None: pass