001_init_documents.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. """init documents table
  2. Revision ID: 001
  3. Revises:
  4. Create Date: 2026-06-12
  5. """
  6. from alembic import op
  7. import sqlalchemy as sa
  8. revision = "001"
  9. down_revision = None
  10. branch_labels = None
  11. depends_on = None
  12. def upgrade() -> None:
  13. op.create_table(
  14. "documents",
  15. sa.Column("id", sa.String(64), primary_key=True),
  16. sa.Column("title", sa.String(255), nullable=False),
  17. sa.Column("content", sa.Text, nullable=False, server_default=""),
  18. sa.Column("format", sa.String(32), nullable=False, server_default="markdown"),
  19. sa.Column("session_id", sa.String(128), nullable=True),
  20. sa.Column("template_id", sa.String(64), nullable=True),
  21. sa.Column("source", sa.String(32), nullable=False, server_default="chat"),
  22. sa.Column("created_by", sa.String(128), nullable=True),
  23. sa.Column(
  24. "created_at",
  25. sa.DateTime(timezone=True),
  26. server_default=sa.func.now(),
  27. nullable=False,
  28. ),
  29. sa.Column(
  30. "updated_at",
  31. sa.DateTime(timezone=True),
  32. server_default=sa.func.now(),
  33. onupdate=sa.func.now(),
  34. nullable=False,
  35. ),
  36. )
  37. op.create_index("ix_documents_session_id", "documents", ["session_id"])
  38. op.create_index("ix_documents_source", "documents", ["source"])
  39. def downgrade() -> None:
  40. op.drop_index("ix_documents_source", table_name="documents")
  41. op.drop_index("ix_documents_session_id", table_name="documents")
  42. op.drop_table("documents")