- Django: very mature ORM, migration support is great. But it doesn’t support async/await (https://docs.djangoproject.com/en/5.0/topics/async/), and these days FastAPI seems like a better option. FastAPI just needs an ORM, so =>
- SQLModel: from @tiangolo who created FastAPI, clean and good Pydantic support, so this would be my default option, but even though it seems to support async/await the doc page is blank (https://sqlmodel.tiangolo.com/advanced/), and for migrations you resort to the underlying =>
- SQLAlchemy: seems by far the largest/best supported, has async/await, has migrations through Alembic (it seems not as fully-featured as Django’s?), but trying to use it has felt very kludgy/painful/verbose.
- Tortoise: the README claims to fulfill my dreams, but I haven’t met anyone yet using it in prod? Anyone have experience they can share?
- Any others I missed?
Meanwhile in the JS/TS ecosystem, Prisma just added preview support for JOINs 2 weeks ago (https://github.com/prisma/prisma/releases/tag/5.7.0 !?!) and yet it seems ubiquitous (though I hear everyone’s moving to Drizzle).
Advice greatly appreciated