"""empty message Revision ID: 5fdea8e26454 Revises: Create Date: 2024-07-10 14:43:55.913126 """ from alembic import op import sqlalchemy as sa import sqlmodel.sql.sqltypes from tidb_vector.sqlalchemy import VectorType from sqlalchemy.dialects import mysql from app.core.config import settings # revision identifiers, used by Alembic. revision = "2fc10c21bf88" down_revision = None branch_labels = None depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "chat_engines", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("id", sa.Integer(), nullable=False), sa.Column("name", sqlmodel.sql.sqltypes.AutoString(length=256), nullable=False), sa.Column("engine_options", sa.JSON(), nullable=True), sa.Column("is_default", sa.Boolean(), nullable=False), sa.Column("deleted_at", sa.DateTime(), nullable=True), sa.PrimaryKeyConstraint("id"), ) op.create_table( "documents", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("id", sa.Integer(), nullable=False), sa.Column("hash", sqlmodel.sql.sqltypes.AutoString(length=32), nullable=False), sa.Column("name", sqlmodel.sql.sqltypes.AutoString(length=256), nullable=False), sa.Column("content", mysql.MEDIUMTEXT(), nullable=True), sa.Column( "mime_type", sqlmodel.sql.sqltypes.AutoString(length=64), nullable=False ), sa.Column( "source_uri", sqlmodel.sql.sqltypes.AutoString(length=512), nullable=False ), sa.Column("meta", sa.JSON(), nullable=True), sa.Column("last_modified_at", sa.DateTime(), nullable=True), sa.Column( "index_status", sa.Enum( "NOT_STARTED", "PENDING", "RUNNING", "COMPLETED", "FAILED", name="docindextaskstatus", ), nullable=False, ), sa.Column("index_result", sa.Text(), nullable=True), sa.PrimaryKeyConstraint("id"), sa.UniqueConstraint("source_uri"), ) op.create_table( "entities", sa.Column("name", sqlmodel.sql.sqltypes.AutoString(length=512), nullable=False), sa.Column("description", sa.Text(), nullable=True), sa.Column("meta", sa.JSON(), nullable=True), sa.Column( "entity_type", sa.Enum("original", "synopsis", name="entitytype"), nullable=False, ), sa.Column("synopsis_info", sa.JSON(), nullable=True), sa.Column("id", sa.Integer(), nullable=False), sa.Column( "description_vec", VectorType(dim=settings.EMBEDDING_DIMS), nullable=True, comment="hnsw(distance=cosine)", ), sa.Column( "meta_vec", VectorType(dim=settings.EMBEDDING_DIMS), nullable=True, comment="hnsw(distance=cosine)", ), sa.PrimaryKeyConstraint("id"), ) op.create_table( "semantic_cache", sa.Column("id", sa.Integer(), nullable=False), sa.Column("query", sa.Text(), nullable=True), sa.Column( "query_vec", VectorType(dim=settings.EMBEDDING_DIMS), nullable=True, comment="hnsw(distance=cosine)", ), sa.Column("value", sa.Text(), nullable=True), sa.Column( "value_vec", VectorType(dim=settings.EMBEDDING_DIMS), nullable=True, comment="hnsw(distance=cosine)", ), sa.Column("meta", sa.JSON(), nullable=True), sa.Column( "created_at", sa.DateTime(), server_default=sa.text("now()"), nullable=True ), sa.Column( "updated_at", sa.DateTime(), server_default=sa.text("now()"), nullable=True ), sa.PrimaryKeyConstraint("id"), mysql_TTL="created_at + INTERVAL 1 MONTH;", ) op.create_table( "site_settings", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("id", sa.Integer(), nullable=False), sa.Column("name", sqlmodel.sql.sqltypes.AutoString(length=256), nullable=False), sa.Column( "data_type", sqlmodel.sql.sqltypes.AutoString(length=256), nullable=False ), sa.Column("value", sa.JSON(), nullable=True), sa.PrimaryKeyConstraint("id"), sa.UniqueConstraint("name"), ) op.create_table( "staff_action_logs", sa.Column("id", sa.Integer(), nullable=False), sa.Column("action", sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column( "action_time", sa.DateTime(), server_default=sa.text("now()"), nullable=True ), sa.Column("target_type", sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column("target_id", sa.Integer(), nullable=False), sa.Column("before", sa.JSON(), nullable=True), sa.Column("after", sa.JSON(), nullable=True), sa.PrimaryKeyConstraint("id"), ) op.create_table( "users", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("id", sqlmodel.sql.sqltypes.GUID(), nullable=False), sa.Column("email", sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column( "hashed_password", sqlmodel.sql.sqltypes.AutoString(), nullable=False ), sa.Column("is_active", sa.Boolean(), nullable=False), sa.Column("is_superuser", sa.Boolean(), nullable=False), sa.Column("is_verified", sa.Boolean(), nullable=False), sa.PrimaryKeyConstraint("id"), ) op.create_index(op.f("ix_users_email"), "users", ["email"], unique=True) op.create_index(op.f("ix_users_id"), "users", ["id"], unique=False) op.create_table( "api_keys", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("id", sa.Integer(), nullable=False), sa.Column( "description", sqlmodel.sql.sqltypes.AutoString(length=100), nullable=False ), sa.Column( "hashed_secret", sqlmodel.sql.sqltypes.AutoString(length=255), nullable=False, ), sa.Column( "api_key_display", sqlmodel.sql.sqltypes.AutoString(length=100), nullable=False, ), sa.Column("is_active", sa.Boolean(), nullable=False), sa.Column("user_id", sqlmodel.sql.sqltypes.GUID(), nullable=False), sa.ForeignKeyConstraint( ["user_id"], ["users.id"], ), sa.PrimaryKeyConstraint("id"), sa.UniqueConstraint("hashed_secret"), ) op.create_table( "chats", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("id", sqlmodel.sql.sqltypes.GUID(), nullable=False), sa.Column( "title", sqlmodel.sql.sqltypes.AutoString(length=256), nullable=False ), sa.Column("engine_id", sa.Integer(), nullable=True), sa.Column("engine_options", sa.JSON(), nullable=True), sa.Column("deleted_at", sa.DateTime(), nullable=True), sa.Column("user_id", sqlmodel.sql.sqltypes.GUID(), nullable=True), sa.ForeignKeyConstraint( ["engine_id"], ["chat_engines.id"], ), sa.ForeignKeyConstraint( ["user_id"], ["users.id"], ), sa.PrimaryKeyConstraint("id"), ) op.create_index(op.f("ix_chats_id"), "chats", ["id"], unique=False) op.create_table( "chunks", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("id", sqlmodel.sql.sqltypes.GUID(), nullable=False), sa.Column("hash", sqlmodel.sql.sqltypes.AutoString(length=64), nullable=False), sa.Column("text", sa.Text(), nullable=True), sa.Column("meta", sa.JSON(), nullable=True), sa.Column( "embedding", VectorType(dim=settings.EMBEDDING_DIMS), nullable=True, comment="hnsw(distance=cosine)", ), sa.Column("document_id", sa.Integer(), nullable=True), sa.Column("relations", sa.JSON(), nullable=True), sa.Column( "source_uri", sqlmodel.sql.sqltypes.AutoString(length=512), nullable=True ), sa.Column( "index_status", sa.Enum( "NOT_STARTED", "PENDING", "RUNNING", "COMPLETED", "FAILED", name="kgindexstatus", ), nullable=False, ), sa.Column("index_result", sa.Text(), nullable=True), sa.ForeignKeyConstraint( ["document_id"], ["documents.id"], ), sa.PrimaryKeyConstraint("id"), ) op.create_index(op.f("ix_chunks_id"), "chunks", ["id"], unique=False) op.create_table( "relationships", sa.Column("description", sa.Text(), nullable=True), sa.Column("meta", sa.JSON(), nullable=True), sa.Column("weight", sa.Integer(), nullable=False), sa.Column("source_entity_id", sa.Integer(), nullable=False), sa.Column("target_entity_id", sa.Integer(), nullable=False), sa.Column("last_modified_at", sa.DateTime(), nullable=True), sa.Column("id", sa.Integer(), nullable=False), sa.Column( "description_vec", VectorType(dim=settings.EMBEDDING_DIMS), nullable=True, comment="hnsw(distance=cosine)", ), sa.ForeignKeyConstraint( ["source_entity_id"], ["entities.id"], ), sa.ForeignKeyConstraint( ["target_entity_id"], ["entities.id"], ), sa.PrimaryKeyConstraint("id"), ) op.create_table( "user_sessions", sa.Column("token", sqlmodel.sql.sqltypes.AutoString(length=43), nullable=False), sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("user_id", sqlmodel.sql.sqltypes.GUID(), nullable=False), sa.ForeignKeyConstraint( ["user_id"], ["users.id"], ), sa.PrimaryKeyConstraint("token"), ) op.create_table( "chat_messages", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column("id", sa.Integer(), nullable=False), sa.Column("ordinal", sa.Integer(), nullable=False), sa.Column("role", sqlmodel.sql.sqltypes.AutoString(length=64), nullable=False), sa.Column("content", sa.Text(), nullable=True), sa.Column("error", sa.Text(), nullable=True), sa.Column("sources", sa.JSON(), nullable=True), sa.Column( "trace_url", sqlmodel.sql.sqltypes.AutoString(length=512), nullable=True ), sa.Column("finished_at", sa.DateTime(), nullable=True), sa.Column("chat_id", sqlmodel.sql.sqltypes.GUID(), nullable=False), sa.Column("user_id", sqlmodel.sql.sqltypes.GUID(), nullable=True), sa.ForeignKeyConstraint( ["chat_id"], ["chats.id"], ), sa.ForeignKeyConstraint( ["user_id"], ["users.id"], ), sa.PrimaryKeyConstraint("id"), ) op.create_table( "feedbacks", sa.Column( "created_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "updated_at", sa.DateTime(timezone=True), server_default=sa.text("now()"), nullable=True, ), sa.Column( "feedback_type", sa.Enum("LIKE", "DISLIKE", name="feedbacktype"), nullable=False, ), sa.Column( "comment", sqlmodel.sql.sqltypes.AutoString(length=500), nullable=False ), sa.Column("id", sa.Integer(), nullable=False), sa.Column("chat_id", sqlmodel.sql.sqltypes.GUID(), nullable=False), sa.Column("chat_message_id", sa.Integer(), nullable=False), sa.Column("user_id", sqlmodel.sql.sqltypes.GUID(), nullable=True), sa.ForeignKeyConstraint( ["chat_id"], ["chats.id"], ), sa.ForeignKeyConstraint( ["chat_message_id"], ["chat_messages.id"], ), sa.ForeignKeyConstraint( ["user_id"], ["users.id"], ), sa.PrimaryKeyConstraint("id"), ) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("feedbacks") op.drop_table("chat_messages") op.drop_table("user_sessions") op.drop_table("relationships") op.drop_index(op.f("ix_chunks_id"), table_name="chunks") op.drop_table("chunks") op.drop_index(op.f("ix_chats_id"), table_name="chats") op.drop_table("chats") op.drop_table("api_keys") op.drop_index(op.f("ix_users_id"), table_name="users") op.drop_index(op.f("ix_users_email"), table_name="users") op.drop_table("users") op.drop_table("staff_action_logs") op.drop_table("site_settings") op.drop_table("semantic_cache") op.drop_table("entities") op.drop_table("documents") op.drop_table("chat_engines") # ### end Alembic commands ###