fix(migration): allow multiple agents per user (one per agent_type)
- Drop single-column UNIQUE constraint on user_agents.user_id - Add composite UNIQUE constraint on (user_id, agent_type) - Enables trigger to insert 3 agents per user (INTENT_RECOGNITION, TASK_EXECUTION, RESULT_REPORTING) - Maintain reversible downgrade path
This commit is contained in:
@@ -20,6 +20,12 @@ depends_on: Union[str, Sequence[str], None] = None
|
|||||||
|
|
||||||
|
|
||||||
def upgrade() -> None:
|
def upgrade() -> None:
|
||||||
|
op.drop_constraint("uq_user_agents_user_id", "user_agents", type_="unique")
|
||||||
|
|
||||||
|
op.create_unique_constraint(
|
||||||
|
"uq_user_agents_user_id_agent_type", "user_agents", ["user_id", "agent_type"]
|
||||||
|
)
|
||||||
|
|
||||||
op.create_table(
|
op.create_table(
|
||||||
"user_agent_catalog",
|
"user_agent_catalog",
|
||||||
sa.Column("agent_type", sa.String(20), nullable=False),
|
sa.Column("agent_type", sa.String(20), nullable=False),
|
||||||
@@ -132,6 +138,12 @@ def downgrade() -> None:
|
|||||||
$$;
|
$$;
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
op.drop_constraint(
|
||||||
|
"uq_user_agents_user_id_agent_type", "user_agents", type_="unique"
|
||||||
|
)
|
||||||
|
|
||||||
|
op.create_unique_constraint("uq_user_agents_user_id", "user_agents", ["user_id"])
|
||||||
|
|
||||||
_drop_rls("user_agent_catalog")
|
_drop_rls("user_agent_catalog")
|
||||||
op.drop_constraint(
|
op.drop_constraint(
|
||||||
"chk_user_agent_catalog_status", "user_agent_catalog", type_="check"
|
"chk_user_agent_catalog_status", "user_agent_catalog", type_="check"
|
||||||
|
|||||||
Reference in New Issue
Block a user