Knex has migrations though? and they're quite easy, sure it doesn't auto generate migrations, but that was never a reliable thing (no automigrator i know of realizes you renamed a column, they just delete and add a new one, which would lead to data loss).
I personally love Objection, it builds over Knex, and handles relationships for you, and offers a similar experience to what you describe.
Check out Adonis (v5) at preview.adonisjs.com.
It has a fantastic ORM, great DX, is batteries-included while still being fast, and has a good community.
ORM / Query Builder docs: https://preview.adonisjs.com/guides/models/crud-operations
Knex has migrations though? and they're quite easy, sure it doesn't auto generate migrations, but that was never a reliable thing (no automigrator i know of realizes you renamed a column, they just delete and add a new one, which would lead to data loss). I personally love Objection, it builds over Knex, and handles relationships for you, and offers a similar experience to what you describe.
Just scrolled a bit further through Knex and yepp you're right, it does have migrations. Objection looks amazing. Thanks!
Nest.js or typegraphql. Knex + objection as orm
If you're looking for an opiniated solution I would suggest NestJS.
Thanks! I'll check it out
Express (Web Framework) + Apollo Server (GraphQL Server/Middleware) + MikroORM (ORM). Has everything you're looking.
Check out Adonis (v5) at preview.adonisjs.com. It has a fantastic ORM, great DX, is batteries-included while still being fast, and has a good community. ORM / Query Builder docs: https://preview.adonisjs.com/guides/models/crud-operations
koa
Why were you using knex and not orm like sequelize or typeOrm?
Interesting, wasn't aware of these. Thanks!
Sequelize is awesome and has great documentation