From 39ee5ef96e7bfe24049ea903b1c080779b77f372 Mon Sep 17 00:00:00 2001 From: Xin Wang Date: Fri, 7 Aug 2026 11:30:58 +0800 Subject: [PATCH] refactor(backend): change prompt field type from varchar(8192) to text Update the 'prompt' field in the Assistant model to use a Text type for improved flexibility. This change is accompanied by a migration script to alter the database schema accordingly. --- backend/db/models.py | 2 +- .../20260807_0014_assistant_prompt_to_text.py | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 backend/migrations/versions/20260807_0014_assistant_prompt_to_text.py diff --git a/backend/db/models.py b/backend/db/models.py index 02c385f..6933fe2 100644 --- a/backend/db/models.py +++ b/backend/db/models.py @@ -171,7 +171,7 @@ class Assistant(Base): ) # ---- 瘦类型专属字段(真列,稀疏:按 type 用其中几列) ---- - prompt: Mapped[str] = mapped_column(String(8192), default="") # prompt / opencode + prompt: Mapped[str] = mapped_column(Text, default="") # prompt / opencode dynamic_variable_definitions: Mapped[dict] = mapped_column(JSON, default=dict) analysis_config: Mapped[dict] = mapped_column(JSONB, default=dict) api_url: Mapped[str] = mapped_column(String(512), default="") # dify / fastgpt / opencode diff --git a/backend/migrations/versions/20260807_0014_assistant_prompt_to_text.py b/backend/migrations/versions/20260807_0014_assistant_prompt_to_text.py new file mode 100644 index 0000000..d9650b4 --- /dev/null +++ b/backend/migrations/versions/20260807_0014_assistant_prompt_to_text.py @@ -0,0 +1,40 @@ +"""change assistants.prompt from varchar(8192) to text + +Revision ID: 20260807_0014 +Revises: 20260807_0013 +""" + +from __future__ import annotations + +from collections.abc import Sequence + +from alembic import op +import sqlalchemy as sa + + +revision: str = "20260807_0014" +down_revision: str | Sequence[str] | None = "20260807_0013" +branch_labels: str | Sequence[str] | None = None +depends_on: str | Sequence[str] | None = None + + +def upgrade() -> None: + op.alter_column( + "assistants", + "prompt", + existing_type=sa.String(length=8192), + type_=sa.Text(), + existing_nullable=False, + existing_server_default=sa.text("''"), + ) + + +def downgrade() -> None: + op.alter_column( + "assistants", + "prompt", + existing_type=sa.Text(), + type_=sa.String(length=8192), + existing_nullable=False, + existing_server_default=sa.text("''"), + )