Rog*_*int 6 postgresql orm sqlalchemy alembic pydantic
所以我正在学习FastAPI并希望获得更多关系数据库的经验。我正在使用 SQLAlchemy ORM、Pydantic 和 Alembic。数据库是Postgres。然而,我遇到的一件事是,当我想向表中添加单个列时,我需要更改模型、模式和 alembic 以反映此更改。这不是对 DRY 的巨大违反,容易出错,而且从长远来看很难维护吗?
Dan*_*erg 3
查看SQLModel。它试图解决这个确切的问题。您无需定义数据库模型 (SQLAlchemy) 和相应的 Pydantic 模型,只需定义一个SQLModel将两者结合起来的模型。
SQLModel
它不会改变您需要验证 Alembic 迁移是否按预期工作的事实。
该项目仍处于早期阶段,但我发现它非常有前途。
一般来说,在开发 API 时,我认为定义两次架构没有任何好处。然而,当您必须重复执行模式中的每个更改时,明显的缺点是使整个应用程序更容易出错。
使用SQLModel,您可能会看到代码行数大幅减少,除非您有非常特殊的要求(例如外来类型、多层验证/转换、高度复杂/嵌套关系)。
归档时间:
2 年,12 月 前
查看次数:
3307 次
最近记录: