Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Es un ORM (https://www2.deloitte.com/es/es/pages/technology/articles/que-es-orm.html)
para Nodejs que te permitirá agilizar bastante tus desarrollos que incluyan bases de
datos relacionales como Postgres, MySQL, MariaDB, SQLite y SQL Server.
Recursos
https://aulavirtual.espol.edu.ec/courses/3423/pages/nodejs-express-orm-intermedio?module_item_id=138385 1/8
31/1/22 11:47 NodeJS - Express - ORM - Intermedio: DESARROLLO DE APLICACIONES WEB Y MÓVILES
Modelos
Estrategias de nombres
Sequelize crea las tablas a partir del plural (en inglés) del modelo. Para utilizar un nombre
de tabla específico será necesario establecer el nombre en el modelo y en la migración:
Modifique el modelo de models/orden.js, agregue el nombre de la futura tabla:
ordenes
...
}, {
sequelize,
modelName: 'orden',
tableName: "ordenes"
});
...
...
await queryInterface.createTable('ordenes', {
id: {
...
await queryInterface.dropTable('ordenes');
...
https://aulavirtual.espol.edu.ec/courses/3423/pages/nodejs-express-orm-intermedio?module_item_id=138385 2/8
31/1/22 11:47 NodeJS - Express - ORM - Intermedio: DESARROLLO DE APLICACIONES WEB Y MÓVILES
...
clienteId: {
type: Sequelize.INTEGER,
allowNull: false,
references: {
model: 'clientes',
key: 'id'
}
},
...
migrations/xxxxyyyyxxxxyyyyzz-create-orden_detalle.js
...
ordenId: {
type: Sequelize.INTEGER,
allowNull: false,
references: {
model: 'ordenes',
key: 'id'
},
productoId: {
type: Sequelize.INTEGER,
allowNull: false,
references: {
model: 'productos',
key: 'id'
},
...
https://aulavirtual.espol.edu.ec/courses/3423/pages/nodejs-express-orm-intermedio?module_item_id=138385 3/8
31/1/22 11:47 NodeJS - Express - ORM - Intermedio: DESARROLLO DE APLICACIONES WEB Y MÓVILES
Migraciones
Cuando se realizan cambios a nivel físico, es necesario revertir y aplicar todas las
migraciones. Desde la línea de comandos del proyecto:
Revierta todas las migraciones anteriores, con: sequelize db:migrate:undo:all
Aplique nuevamente todas las migraciones, con: sequelize db:migrate
Revise los cambios en la base de datos.
[Opcional] Modelo ER
MySQL Workbench nos ofrece una opción para visualizar las entidades y sus relaciones
(How to reverse engineer a database with MySQL Workbench - MySQL Workbench
Tutorials., 2021).
https://aulavirtual.espol.edu.ec/courses/3423/pages/nodejs-express-orm-intermedio?module_item_id=138385 4/8
31/1/22 11:47 NodeJS - Express - ORM - Intermedio: DESARROLLO DE APLICACIONES WEB Y MÓVILES
Generadores de datos
Para generar datos en entidades con claves foráneas será necesario crear y ejecutar los
seeders. (associations, S., Elazazy, A., & Manuilov, E., 2018). Desde la línea de comandos
del proyecto:
Cree los archivos de los generadores, con:
sequelize seed:generate --name ordenes
sequelize seed:generate --name orden_detalles
Copie el contenido de seeders.rar
(https://aulavirtual.espol.edu.ec/courses/3423/files/1410082/download?wrap=1) en los
archivos correspondientes:
ordenes.js en seeders/xxxxyyyyxxxxyyyyzz-ordenes.js
orden_detalles.js en seeders/xxxxyyyyxxxxyyyyzz-orden_detalles.js
Ejecute los generadores automáticos de datos, con: sequelize db:seed:all
Verifique los resultados en la base de datos.
Órdenes (Orders)
https://aulavirtual.espol.edu.ec/courses/3423/pages/nodejs-express-orm-intermedio?module_item_id=138385 5/8
31/1/22 11:47 NodeJS - Express - ORM - Intermedio: DESARROLLO DE APLICACIONES WEB Y MÓVILES
Para manipular los datos asociados mediantes las clases será necesario establecer las
relaciones entre las clases:
Agrega la relación entre clases Orden - Cliente, con: models/orden.js
...
static associate(models) {
this.belongsTo(models.cliente)
...
...
Ordenes.findAll({
})
.then(ordenes => {
...
...
<tr>
...
</tr>
...
Fuentes
Node JS, Express y MySQL con Sequelize. (2021). Retrieved 3 August 2021, from
https://tomasmalio.medium.com/node-js-express-y-mysql-con-sequelize-
ec0a7c0ae292 (https://tomasmalio.medium.com/node-js-express-y-mysql-con-sequelize-
ec0a7c0ae292)
associations, S., Elazazy, A., & Manuilov, E. (2018). Sequelize: seed with associations.
Retrieved 5 August 2021, from https://stackoverflow.com/questions/48732223/sequelize-
seed-with-associations (https://stackoverflow.com/questions/48732223/sequelize-seed-with-
associations)
How to reverse engineer a database with MySQL Workbench - MySQL Workbench Tutorials.
(2021). Retrieved 5 August 2021, from https://dataedo.com/kb/tools/mysql-
workbench/how-to-reverse-engineer-database (https://dataedo.com/kb/tools/mysql-
workbench/how-to-reverse-engineer-database)
https://aulavirtual.espol.edu.ec/courses/3423/pages/nodejs-express-orm-intermedio?module_item_id=138385 7/8
31/1/22 11:47 NodeJS - Express - ORM - Intermedio: DESARROLLO DE APLICACIONES WEB Y MÓVILES
https://aulavirtual.espol.edu.ec/courses/3423/pages/nodejs-express-orm-intermedio?module_item_id=138385 8/8