Browse Source

Fix: psycopg2.errors.StringDataRightTruncation value too long for type character varying(40) (#15179)

mr-chenguang 1 tháng trước cách đây
mục cha
commit
53eb56bb1e

+ 64 - 0
api/migrations/versions/2025_03_07_0315-5511c782ee4c_extend_provider_column.py

@@ -0,0 +1,64 @@
+"""extend provider column
+
+Revision ID: 5511c782ee4c
+Revises: 4413929e1ec2
+Create Date: 2025-03-07 03:15:05.364804
+
+"""
+from alembic import op
+import models as models
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = '5511c782ee4c'
+down_revision = '4413929e1ec2'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    # ### commands auto generated by Alembic - please adjust! ###
+    with op.batch_alter_table('tool_api_providers', schema=None) as batch_op:
+        batch_op.alter_column('name',
+               existing_type=sa.VARCHAR(length=40),
+               type_=sa.String(length=255),
+               existing_nullable=False)
+
+    with op.batch_alter_table('tool_model_invokes', schema=None) as batch_op:
+        batch_op.alter_column('provider',
+               existing_type=sa.VARCHAR(length=40),
+               type_=sa.String(length=255),
+               existing_nullable=False)
+
+    with op.batch_alter_table('tool_workflow_providers', schema=None) as batch_op:
+        batch_op.alter_column('name',
+               existing_type=sa.VARCHAR(length=40),
+               type_=sa.String(length=255),
+               existing_nullable=False)
+
+    # ### end Alembic commands ###
+
+
+def downgrade():
+    # ### commands auto generated by Alembic - please adjust! ###
+
+    with op.batch_alter_table('tool_workflow_providers', schema=None) as batch_op:
+        batch_op.alter_column('name',
+               existing_type=sa.String(length=255),
+               type_=sa.VARCHAR(length=40),
+               existing_nullable=False)
+
+    with op.batch_alter_table('tool_model_invokes', schema=None) as batch_op:
+        batch_op.alter_column('provider',
+               existing_type=sa.String(length=255),
+               type_=sa.VARCHAR(length=40),
+               existing_nullable=False)
+
+    with op.batch_alter_table('tool_api_providers', schema=None) as batch_op:
+        batch_op.alter_column('name',
+               existing_type=sa.String(length=255),
+               type_=sa.VARCHAR(length=40),
+               existing_nullable=False)
+
+    # ### end Alembic commands ###

+ 3 - 3
api/models/tools.py

@@ -64,7 +64,7 @@ class ApiToolProvider(Base):
 
     id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
     # name of the api provider
-    name = db.Column(db.String(40), nullable=False)
+    name = db.Column(db.String(255), nullable=False)
     # icon
     icon = db.Column(db.String(255), nullable=False)
     # original schema
@@ -143,7 +143,7 @@ class WorkflowToolProvider(Base):
 
     id: Mapped[str] = mapped_column(StringUUID, server_default=db.text("uuid_generate_v4()"))
     # name of the workflow provider
-    name: Mapped[str] = mapped_column(db.String(40), nullable=False)
+    name: Mapped[str] = mapped_column(db.String(255), nullable=False)
     # label of the workflow provider
     label: Mapped[str] = mapped_column(db.String(255), nullable=False, server_default="")
     # icon
@@ -205,7 +205,7 @@ class ToolModelInvoke(Base):
     # tenant id
     tenant_id = db.Column(StringUUID, nullable=False)
     # provider
-    provider = db.Column(db.String(40), nullable=False)
+    provider = db.Column(db.String(255), nullable=False)
     # type
     tool_type = db.Column(db.String(40), nullable=False)
     # tool name