| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- """init database with SQLite Block storage
- Revision ID: 001_init_database
- Revises:
- Create Date: 2026-07-03
- 初始化数据库,包含 SQLite Block 存储方案的表结构
- """
- from alembic import op
- import sqlalchemy as sa
- revision = "001_init_database"
- down_revision = None
- branch_labels = None
- depends_on = None
- def upgrade() -> None:
- # ========== documents 表 ==========
- op.create_table(
- "documents",
- sa.Column("id", sa.String(64), primary_key=True),
- sa.Column("content_db_path", sa.String(1024), nullable=False),
- sa.Column("session_id", sa.String(128), nullable=True),
- sa.Column("created_by", sa.String(128), nullable=True),
- sa.Column(
- "created_at",
- sa.DateTime(timezone=True),
- server_default=sa.func.now(),
- nullable=False,
- ),
- sa.Column(
- "updated_at",
- sa.DateTime(timezone=True),
- server_default=sa.func.now(),
- onupdate=sa.func.now(),
- nullable=False,
- ),
- )
- op.create_index("ix_documents_session_id", "documents", ["session_id"])
- op.create_index("ix_documents_created_by", "documents", ["created_by"])
- # ========== export_records 表 ==========
- op.create_table(
- "export_records",
- sa.Column("id", sa.String(64), primary_key=True),
- sa.Column("user_id", sa.String(128), nullable=False),
- sa.Column("file_name", sa.String(512), nullable=False),
- sa.Column("file_path", sa.String(1024), nullable=False),
- sa.Column("file_size", sa.BigInteger(), nullable=False, server_default="0"),
- sa.Column("download_url", sa.String(1024), nullable=False),
- sa.Column("document_id", sa.String(64), nullable=True),
- sa.Column("style_id", sa.String(64), nullable=False, server_default="default"),
- sa.Column(
- "created_at",
- sa.DateTime(timezone=True),
- server_default=sa.func.now(),
- nullable=False,
- ),
- )
- op.create_index("ix_export_records_user_id", "export_records", ["user_id"])
- op.create_index("ix_export_records_document_id", "export_records", ["document_id"])
- def downgrade() -> None:
- # 删除 export_records 表
- op.drop_index("ix_export_records_document_id", table_name="export_records")
- op.drop_index("ix_export_records_user_id", table_name="export_records")
- op.drop_table("export_records")
-
- # 删除 documents 表
- op.drop_index("ix_documents_created_by", table_name="documents")
- op.drop_index("ix_documents_session_id", table_name="documents")
- op.drop_table("documents")
|