38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
"""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
|