Resumen comparativo de Drizzle ORM vs Kysely
Ventajas de Drizzle ORM
- Intuición en la definición del esquema: permite definir esquemas de forma declarativa, y a partir de ello generar automáticamente SQL
CREATE TABLE.
- Migraciones automatizadas: puede detectar automáticamente los cambios en el esquema y generar archivos de migración SQL.
- Definición intuitiva de relaciones: ofrece una API para definir de forma clara e intuitiva las relaciones entre tablas.
- Escritura de consultas basada en objetos: garantiza seguridad de tipos al referenciar tablas y columnas como objetos.
- Excelente manejo de columnas con el mismo nombre: al hacer joins entre varias tablas, distingue naturalmente las columnas con el mismo nombre mediante una estructura jerárquica de objetos.
Ventajas de Kysely
- Estructura modular ligera: una arquitectura flexible que permite incluir solo las funciones necesarias.
- API fiel a SQL: su diseño de API es muy cercano a la sintaxis de SQL, por lo que resulta familiar para quienes dominan SQL.
- Migraciones basadas en TypeScript: permite integrar la lógica de la aplicación dentro de los scripts de migración.
- Soporte para migraciones bidireccionales: mediante la definición de funciones
up/down, soporta tanto actualizaciones como reversión de cambios.
- Flexibilidad para consultas complejas: permite un enfoque más flexible al escribir ciertas consultas complejas.
Comparación con SQLAlchemy
- Conjunto de funciones muy amplio: SQLAlchemy sigue siendo el ORM más completo y potente.
- Migraciones no lineales: el soporte de branchpoints en Alembic lo hace más adecuado para entornos de desarrollo complejos.
- Documentación extensa: va más allá de una simple referencia de API y ofrece explicaciones profundas e incluso detalles de implementación interna.
- Estabilidad comprobada: cuenta con una estabilidad validada durante años en proyectos de gran escala.
Conclusión
- Ventajas de Drizzle ORM: sobresale en definición intuitiva de esquemas, enfoque basado en objetos y manejo de columnas con el mismo nombre.
- Es necesario considerar los requisitos del proyecto: la elección del ORM puede variar según las funciones específicas y el estilo de desarrollo.
- Se espera una evolución al nivel de SQLAlchemy: se desea que en el ecosistema de JavaScript/TypeScript también surja un ORM al nivel de SQLAlchemy.
3 comentarios
DrizzleORM para NestJS
https://trilon.io/blog/nestjs-drizzleorm-a-great-match
He usado prisma, drizzle, sequelize y typeorm, pero hasta ahora typeorm me ha parecido el mejor.
Si les parece mejor TypeORM, también les recomiendo MikroORM.
Como es parecido a TypeORM, migrar también es sencillo y además se puede complementar con Knex.
Como el mantenimiento de TypeORM va lento, cuando buscan otra alternativa, MikroORM es la más similar.