如何使用 sequelize fixtures 处理连接表中的附加属性?
How to handle additional attributes in join tables with sequelize fixtures?
我正在用 sequelize fixtures 播种数据库,我已经知道如何处理多对多关系:
Project.hasMany(User);
User.hasMany(Project);
[
{
"model":"User",
"data":{
"id": 123,
"name": "John"
}
},
{
"model":"Project",
"data": {
"id": 20,
"name": "The Great Project",
"UserProjects": [123]
}
}
]
但是如果联接 table 具有其他属性,如:
User = sequelize.define('user', {})
Project = sequelize.define('project', {})
UserProjects = sequelize.define('userProjects', {
status: DataTypes.STRING
})
User.belongsToMany(Project, { through: UserProjects })
Project.belongsToMany(User, { through: UserProjects })
如果我使用上面的夹具,加载夹具后状态将为空,因为它没有考虑状态属性。我如何使用 sequelize-fixtures 为加入 table UserProjects 的状态属性设置种子?
这现在可以在 sequelize-fixtures v.0.5.1 中使用 m2m 关系的特殊 _through
键来完成:
[
{
"model":"User",
"data":{
"id": 123,
"name": "John"
}
},
{
"model":"Project",
"data": {
"id": 20,
"name": "The Great Project",
"users":[
{
"id": 123,
"_through": {
"status": "active"
}
}
]
}
}
]
我正在用 sequelize fixtures 播种数据库,我已经知道如何处理多对多关系:
Project.hasMany(User);
User.hasMany(Project);
[
{
"model":"User",
"data":{
"id": 123,
"name": "John"
}
},
{
"model":"Project",
"data": {
"id": 20,
"name": "The Great Project",
"UserProjects": [123]
}
}
]
但是如果联接 table 具有其他属性,如:
User = sequelize.define('user', {})
Project = sequelize.define('project', {})
UserProjects = sequelize.define('userProjects', {
status: DataTypes.STRING
})
User.belongsToMany(Project, { through: UserProjects })
Project.belongsToMany(User, { through: UserProjects })
如果我使用上面的夹具,加载夹具后状态将为空,因为它没有考虑状态属性。我如何使用 sequelize-fixtures 为加入 table UserProjects 的状态属性设置种子?
这现在可以在 sequelize-fixtures v.0.5.1 中使用 m2m 关系的特殊 _through
键来完成:
[
{
"model":"User",
"data":{
"id": 123,
"name": "John"
}
},
{
"model":"Project",
"data": {
"id": 20,
"name": "The Great Project",
"users":[
{
"id": 123,
"_through": {
"status": "active"
}
}
]
}
}
]