首页 文章

Sequelize不为多对多关系创建连接表

提问于
浏览
2

我没有看到下面的代码创建了联结表(对于UserEvents as:Attendees) . 当我尝试使用event.setAttendees([user])将'Attendee'添加到事件时,它会在用户表上设置EventId(从而使其成为一对多关系)

在同步日志记录期间,不会创建具有“userevents”相关名称的表

var User = db.import(__dirname + '/user');
var Event = db.import(__dirname + '/event');

Event.hasMany(User, { as: 'Attendees'});
User.hasMany(Event);

db.sync({logging: console.log}).success(function() {
  logger.info('DB Initialization successful!');
  createDefaultData()
}).error(function(err) {
  logger.error('DB Initialization failed!', err);
});

var createDefaultData = function() {

  User.create({email:"test@test.com", firstName: "tolga", lastName: "ekmen", password: "qwer", location: "13424"});
}

1 回答

  • 2

    使用别名( { as: 'Attendees'} )时,您必须通过指定 through (可以是字符串或模型)来告诉sequelize您想要连接表:

    Event.hasMany(User, { as: 'Attendees', through: 'user_events' });
    User.hasMany(Event, { , through: 'user_events' });
    

相关问题