001_init_documents.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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("created_by", sa.String(128), nullable=True),
  22. sa.Column(
  23. "created_at",
  24. sa.DateTime(timezone=True),
  25. server_default=sa.func.now(),
  26. nullable=False,
  27. ),
  28. sa.Column(
  29. "updated_at",
  30. sa.DateTime(timezone=True),
  31. server_default=sa.func.now(),
  32. onupdate=sa.func.now(),
  33. nullable=False,
  34. ),
  35. )
  36. op.create_index("ix_documents_session_id", "documents", ["session_id"])
  37. def downgrade() -> None:
  38. op.drop_index("ix_documents_session_id", table_name="documents")
  39. op.drop_table("documents")