|
@@ -0,0 +1,75 @@
|
|
|
|
|
+"""create persisted Agent document injection table
|
|
|
|
|
+
|
|
|
|
|
+Revision ID: 20260727_03
|
|
|
|
|
+Revises: 20260727_02
|
|
|
|
|
+Create Date: 2026-07-27
|
|
|
|
|
+"""
|
|
|
|
|
+from __future__ import annotations
|
|
|
|
|
+
|
|
|
|
|
+from collections.abc import Sequence
|
|
|
|
|
+
|
|
|
|
|
+import sqlalchemy as sa
|
|
|
|
|
+from alembic import op
|
|
|
|
|
+from sqlalchemy.dialects import mysql
|
|
|
|
|
+
|
|
|
|
|
+revision: str = "20260727_03"
|
|
|
|
|
+down_revision: str | None = "20260727_02"
|
|
|
|
|
+branch_labels: str | Sequence[str] | None = None
|
|
|
|
|
+depends_on: str | Sequence[str] | None = None
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def upgrade() -> None:
|
|
|
|
|
+ op.create_table(
|
|
|
|
|
+ "agent_document_injection",
|
|
|
|
|
+ sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
|
|
|
+ sa.Column(
|
|
|
|
|
+ "agent_name",
|
|
|
|
|
+ sa.String(length=128),
|
|
|
|
|
+ nullable=False,
|
|
|
|
|
+ comment="Agent name",
|
|
|
|
|
+ ),
|
|
|
|
|
+ sa.Column(
|
|
|
|
|
+ "content",
|
|
|
|
|
+ sa.Text().with_variant(mysql.LONGTEXT(), "mysql"),
|
|
|
|
|
+ nullable=False,
|
|
|
|
|
+ comment="Document content injected after the base system prompt",
|
|
|
|
|
+ ),
|
|
|
|
|
+ sa.Column(
|
|
|
|
|
+ "enabled",
|
|
|
|
|
+ sa.Integer(),
|
|
|
|
|
+ server_default=sa.text("1"),
|
|
|
|
|
+ nullable=False,
|
|
|
|
|
+ comment="Whether the document injection is active",
|
|
|
|
|
+ ),
|
|
|
|
|
+ sa.Column(
|
|
|
|
|
+ "create_time",
|
|
|
|
|
+ sa.DateTime(),
|
|
|
|
|
+ server_default=sa.func.now(),
|
|
|
|
|
+ nullable=False,
|
|
|
|
|
+ ),
|
|
|
|
|
+ sa.Column(
|
|
|
|
|
+ "update_time",
|
|
|
|
|
+ sa.DateTime(),
|
|
|
|
|
+ server_default=sa.func.now(),
|
|
|
|
|
+ nullable=False,
|
|
|
|
|
+ ),
|
|
|
|
|
+ sa.PrimaryKeyConstraint("id"),
|
|
|
|
|
+ sa.UniqueConstraint(
|
|
|
|
|
+ "agent_name",
|
|
|
|
|
+ name="uk_agent_document_injection_agent_name",
|
|
|
|
|
+ ),
|
|
|
|
|
+ mysql_charset="utf8mb4",
|
|
|
|
|
+ )
|
|
|
|
|
+ op.create_index(
|
|
|
|
|
+ "ix_agent_document_injection_agent_name",
|
|
|
|
|
+ "agent_document_injection",
|
|
|
|
|
+ ["agent_name"],
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def downgrade() -> None:
|
|
|
|
|
+ op.drop_index(
|
|
|
|
|
+ "ix_agent_document_injection_agent_name",
|
|
|
|
|
+ table_name="agent_document_injection",
|
|
|
|
|
+ )
|
|
|
|
|
+ op.drop_table("agent_document_injection")
|