From ec5cde68278f165b9ea3af9fe022b45cd5dc8334 Mon Sep 17 00:00:00 2001 From: QuantumGhost Date: Mon, 19 May 2025 20:12:44 +0800 Subject: [PATCH] refactor(api): Remove manually specified unique constraint name Instead, we'll rely on column names while using `on_conflict_do_update`. --- ...adcbe1f5dfb_add_workflowdraftvariable_model.py | 2 +- api/models/workflow.py | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/api/migrations/versions/2025_05_15_1531-2adcbe1f5dfb_add_workflowdraftvariable_model.py b/api/migrations/versions/2025_05_15_1531-2adcbe1f5dfb_add_workflowdraftvariable_model.py index f168225e83..5bf394b21c 100644 --- a/api/migrations/versions/2025_05_15_1531-2adcbe1f5dfb_add_workflowdraftvariable_model.py +++ b/api/migrations/versions/2025_05_15_1531-2adcbe1f5dfb_add_workflowdraftvariable_model.py @@ -35,7 +35,7 @@ def upgrade(): sa.Column("value", sa.Text(), nullable=False), sa.Column("visible", sa.Boolean(), nullable=False), sa.Column("editable", sa.Boolean(), nullable=False), - sa.PrimaryKeyConstraint("id", name="workflow_draft_variables_pkey"), + sa.PrimaryKeyConstraint("id", name=op.f("workflow_draft_variables_pkey")), sa.UniqueConstraint("app_id", "node_id", "name", name=op.f("workflow_draft_variables_app_id_key")), ) diff --git a/api/models/workflow.py b/api/models/workflow.py index f4e3d2f579..a81c889277 100644 --- a/api/models/workflow.py +++ b/api/models/workflow.py @@ -815,17 +815,16 @@ def _naive_utc_datetime(): class WorkflowDraftVariable(Base): - UNIQUE_INDEX_APP_ID_NODE_ID_NAME = "workflow_draft_variables_app_id_key" - - __tablename__ = "workflow_draft_variables" - __table_args__ = ( - UniqueConstraint( + @staticmethod + def unique_columns() -> list[str]: + return [ "app_id", "node_id", "name", - name=UNIQUE_INDEX_APP_ID_NODE_ID_NAME, - ), - ) + ] + + __tablename__ = "workflow_draft_variables" + __table_args__ = (UniqueConstraint(*unique_columns()),) # id is the unique identifier of a draft variable. id: Mapped[str] = mapped_column(StringUUID, primary_key=True, server_default=db.text("uuid_generate_v4()"))