tre*_*s21 5 mysql sequelize.js
使用sequelize,我期望这一行:
m.User.belongsToMany(m.Company, {through: 'UserCompany'});
Run Code Online (Sandbox Code Playgroud)
在我的数据库中生成一个名为“ user_company”的新表,该表会将“ user”表和“ company”表链接在一起。但是,它没有这样做。当我说文档时我误会了吗
这将创建一个具有等效外键ProjectId和UserId的名为UserProject的新模型。属性是否为驼峰格式取决于表连接的两个模型(在这种情况下为User和Project)。
还是我做错了什么?
这是我正在建立的关系
m.Company.hasMany(m.User);
m.User.belongsToMany(m.Company, {
through: m.UserCompany
});
m.User.sync({force: true, match: /_test$/});
m.Company.sync({force: true, match: /_test$/});
m.UserCompany.sync({force: true, match: /_test$/});
Run Code Online (Sandbox Code Playgroud)
看起来我需要手动创建 UserCompany 模型。所以,UserCompany.js 看起来像:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('UserCompany', {
}, {
freezeTableName: true,
paranoid: true
});
}
Run Code Online (Sandbox Code Playgroud)
然后,belongsToMany 会自动将正确的列添加到表中。