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:
|
||||
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(
|
||||
"user_agent_catalog",
|
||||
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")
|
||||
op.drop_constraint(
|
||||
"chk_user_agent_catalog_status", "user_agent_catalog", type_="check"
|
||||
|
||||
Reference in New Issue
Block a user