This commit is contained in:
Timothy Jaeryang Baek
2026-02-02 09:31:52 -06:00
parent d938eb0e76
commit 3c0313f41b
2 changed files with 20 additions and 21 deletions
@@ -26,14 +26,14 @@ def upgrade() -> None:
# Step 1: Create table # Step 1: Create table
op.create_table( op.create_table(
"chat_message", "chat_message",
sa.Column("id", sa.String(), primary_key=True), sa.Column("id", sa.Text(), primary_key=True),
sa.Column("chat_id", sa.String(), nullable=False, index=True), sa.Column("chat_id", sa.Text(), nullable=False, index=True),
sa.Column("user_id", sa.String(), index=True), sa.Column("user_id", sa.Text(), index=True),
sa.Column("role", sa.String(), nullable=False), sa.Column("role", sa.Text(), nullable=False),
sa.Column("parent_id", sa.String(), nullable=True), sa.Column("parent_id", sa.Text(), nullable=True),
sa.Column("content", sa.JSON(), nullable=True), sa.Column("content", sa.JSON(), nullable=True),
sa.Column("output", sa.JSON(), nullable=True), sa.Column("output", sa.JSON(), nullable=True),
sa.Column("model_id", sa.String(), nullable=True, index=True), sa.Column("model_id", sa.Text(), nullable=True, index=True),
sa.Column("files", sa.JSON(), nullable=True), sa.Column("files", sa.JSON(), nullable=True),
sa.Column("sources", sa.JSON(), nullable=True), sa.Column("sources", sa.JSON(), nullable=True),
sa.Column("embeds", sa.JSON(), nullable=True), sa.Column("embeds", sa.JSON(), nullable=True),
@@ -62,21 +62,21 @@ def upgrade() -> None:
chat_table = sa.table( chat_table = sa.table(
"chat", "chat",
sa.column("id", sa.String()), sa.column("id", sa.Text()),
sa.column("user_id", sa.String()), sa.column("user_id", sa.Text()),
sa.column("chat", sa.JSON()), sa.column("chat", sa.JSON()),
) )
chat_message_table = sa.table( chat_message_table = sa.table(
"chat_message", "chat_message",
sa.column("id", sa.String()), sa.column("id", sa.Text()),
sa.column("chat_id", sa.String()), sa.column("chat_id", sa.Text()),
sa.column("user_id", sa.String()), sa.column("user_id", sa.Text()),
sa.column("role", sa.String()), sa.column("role", sa.Text()),
sa.column("parent_id", sa.String()), sa.column("parent_id", sa.Text()),
sa.column("content", sa.JSON()), sa.column("content", sa.JSON()),
sa.column("output", sa.JSON()), sa.column("output", sa.JSON()),
sa.column("model_id", sa.String()), sa.column("model_id", sa.Text()),
sa.column("files", sa.JSON()), sa.column("files", sa.JSON()),
sa.column("sources", sa.JSON()), sa.column("sources", sa.JSON()),
sa.column("embeds", sa.JSON()), sa.column("embeds", sa.JSON()),
+6 -7
View File
@@ -12,7 +12,6 @@ from sqlalchemy import (
Boolean, Boolean,
Column, Column,
ForeignKey, ForeignKey,
String,
Text, Text,
JSON, JSON,
Index, Index,
@@ -50,22 +49,22 @@ class ChatMessage(Base):
__tablename__ = "chat_message" __tablename__ = "chat_message"
# Identity # Identity
id = Column(String, primary_key=True) id = Column(Text, primary_key=True)
chat_id = Column( chat_id = Column(
String, ForeignKey("chat.id", ondelete="CASCADE"), nullable=False, index=True Text, ForeignKey("chat.id", ondelete="CASCADE"), nullable=False, index=True
) )
user_id = Column(String, index=True) user_id = Column(Text, index=True)
# Structure # Structure
role = Column(String, nullable=False) # user, assistant, system role = Column(Text, nullable=False) # user, assistant, system
parent_id = Column(String, nullable=True) parent_id = Column(Text, nullable=True)
# Content # Content
content = Column(JSON, nullable=True) # Can be str or list of blocks content = Column(JSON, nullable=True) # Can be str or list of blocks
output = Column(JSON, nullable=True) output = Column(JSON, nullable=True)
# Model (for assistant messages) # Model (for assistant messages)
model_id = Column(String, nullable=True, index=True) model_id = Column(Text, nullable=True, index=True)
# Attachments # Attachments
files = Column(JSON, nullable=True) files = Column(JSON, nullable=True)