Skip to content

Instantly share code, notes, and snippets.

@mcranston18
Created March 17, 2018 21:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mcranston18/b41461eb46476116927797609c981252 to your computer and use it in GitHub Desktop.
Save mcranston18/b41461eb46476116927797609c981252 to your computer and use it in GitHub Desktop.
const Sequelize = require('sequelize');
const sequelize = new Sequelize('dummy_db', 'postgres', '', {
host: 'localhost',
dialect: 'postgres',
logging: false
});
const User = sequelize.define('users', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: Sequelize.STRING,
}, {
tableName: 'users'
});
const Role = sequelize.define('roles', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
roleName: {
type: Sequelize.STRING,
unique: true
}
}, {
tableName: 'roles'
});
const UserRole = sequelize.define('users_role', {
role_id: {
type: Sequelize.INTEGER,
unique: 'user_role_roleable'
},
user_id: {
type: Sequelize.INTEGER
}
}, {
tableName: 'users_roles'
});
User.belongsToMany(Role, {
through: 'users_roles'
});
Role.belongsToMany(User, {
through: 'users_roles'
});
start();
async function start() {
await sequelize.sync({force: true});
const user = await User.create({name: 'some user'});
const role = await Role.create({roleName: 'some role'});
console.log(' user.setRoles ', !!user.setRoles)
await user.setRoles([role]);
const users = await User.findAll({
include: [{model: Role}]
});
console.log('users ', users);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment