数据库与迁移

eval_752 的数据库开发指南。

技术选型

  • PostgreSQL 14+:数据库
  • SQLAlchemy:ORM
  • Alembic:迁移

创建迁移

cd backend

# 根据 model 变更自动生成
uv run alembic revision --autogenerate -m "add new table"

# 审查 backend/alembic/versions/ 中生成的文件

# 应用迁移
uv run alembic upgrade head

# 回滚一步
uv run alembic downgrade -1

最佳实践

  • 始终审查自动生成的迁移
  • 同时测试 upgrade 与 downgrade
  • 用多步迁移避免数据丢失
  • 记录 breaking changes

Models

Models 位于 backend/src/eval_752/infra/models/

from sqlalchemy.orm import Mapped, mapped_column

class Provider(Base):
    __tablename__ = "providers"

    id: Mapped[str] = mapped_column(primary_key=True)
    name: Mapped[str]
    base_url: Mapped[str]
    # ...

具体模式与约定请参考现有 models。