intive Argentina Blog

Review de Sequelize

Sequelize es un ORM basado en promise para Node.js y io.js. Soporta PostgreSQL, MySQL, MariaDB, SQLite y dialectos MSSQL, y ofrece un sólido soporte transaccional. Lee replicación y más.

Una de sus mejores prestaciones es el manejo de promise. Es muy común, y una buena práctica utilizar Q promises en Node y JavaScript.

 

Querying

En lo que respecta al querying básico, la API es por demás completa. Tiene varios métodos de recuperar la información desde la base de datos y varios operadores para utilizar en query como $and, $or, $gt, $between, $contain, etc. La manera de construir queries es muy similar a mongo. Además, Sequelize tiene la propiedad del include. Se puede usar esta propiedad para hacer queries entre cuadros de relación.

En conclusión, hay buen soporte de las operaciones CRUD.

 

Scoping

Otra de las características útiles de Sequelize es scoping. Permite definir queries comúnmente utilizadas que pueden ser reutilizadas más tarde. Los scopes pueden incluir los mismos atributos como finders comunes: where, include, limit etc. Aquí, un ejemplo:

Como se puede ver, es posible declarar una función en la propiedad de un scope como por ejemplo random. El  defaultScope será utilizado en todos los queries por defecto.

También puedes fusionar scopes para aplicar más de uno al mismo tiempo.

Para más información, visitar Scopes en la documentación de Sequalize.

 

Relaciones / Asociaciones

El framework cubre todas las relaciones y asociaciones. Para más información puedes visitar: Relations/Associations.

 

Transacciones

Realizar transacciones es simple. Puedes crear transacciones simultáneas/parciales también. Aquí está la referencia completa.

 

Migraciones

Las migraciones son muy importantes en un modelo relacional. Sequelize ofrece una CLI donde se pueden crear y ejecutar migraciones. Su esqueleto consiste básicamente en dos métodos, up y down para convertir al nuevo estado y revertir los cambios, respectivamente. Además, existe la queryInterface para alterar/crear cuadros. Es común usarlos en los métodos de migración descriptos anteriormente.

Sequelize tiene una librería hermana para manejar las tareas de migración de ejecución y logging de manera programada.

 

Conclusión

Sequelize es un ORM completo que satisface todos los requerimientos que un modelo relacional necesita. Como para todo, tú sabrás si Sequelize es o no la mejor opción para tí. Tú tienes la última palabra.

Ezequiel Rozenzwaig

Es desarrollador web en intive – FDV e integra la Brigada Backend. Es estudiante de la Facultad de Ingeniería de la Universidad de Buenos Aires. Entre sus principales aptitudes se destacan sus conocimientos sobre Java y desarrollo de software.

Deja un comentario