Para reconstruir los modelos de una base de datos preconstruida (tablas, relaciones y datos) a un proyecto de Express, será necesario incorporar el módulo sequelize-auto.
Ejecute el script dbauth.sql en el motor de la base de datos. Use el schema dbauth. La base de datos a considerar contiene las tablas users, roles_users y roles, como se muestra a continuación.
Desde la línea de comandos, en la raíz de la carpeta del proyecto.
npm install -g sequelize-cli
npm install -g sequelize-auto
npm install --save sequelize mysql2
sequelize init
config/config.json
con los datos para la conexión con el motor de bases de datos. En este caso, el ambiente a utilizar es development.
{
"development": {
"username": "root",
"password": null,
"database": "database_development",
"host": "127.0.0.1",
"dialect": "mysql"
},
...
Desde la línea de comandos, en la raíz de la carpeta del proyecto.
sequelize-auto -h 127.0.0.1 -d dbauth -u root -x root -p 3306
/models
.
init-models.js
con las relaciones entre los modelos. Los alias (user_id_users, role_id_roles, roles_users, role y user) son utilizadas para referirse a las relaciones entre los modelos.
roles.belongsToMany(users, { as: 'user_id_users', through: roles_users, foreignKey: "role_id", otherKey: "user_id" });
users.belongsToMany(roles, { as: 'role_id_roles', through: roles_users, foreignKey: "user_id", otherKey: "role_id" });
roles_users.belongsTo(roles, { as: "role", foreignKey: "role_id"});
roles.hasMany(roles_users, { as: "roles_users", foreignKey: "role_id"});
roles_users.belongsTo(users, { as: "user", foreignKey: "user_id"});
users.hasMany(roles_users, { as: "roles_users", foreignKey: "user_id"});