【问题标题】:How to handle additional attributes in join tables with sequelize fixtures?如何使用 sequelize 固定装置处理连接表中的附加属性?
【发布时间】:2016-02-12 07:26:03
【问题描述】:

我正在使用 sequelize 固定装置播种数据库,并且我已经知道如何处理与它的多对多关系:

Project.hasMany(User);
User.hasMany(Project);
[
    {
        "model":"User",
        "data":{
            "id": 123,
            "name": "John"
        }
    },
    {
        "model":"Project",
        "data": {
            "id": 20,
            "name": "The Great Project",
            "UserProjects": [123]
        }
    }
]

但是如果连接表有额外的属性,比如:

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 来播种连接表 UserProjects 的状态属性?

【问题讨论】:

    标签: node.js database sequelize.js fixtures seeding


    【解决方案1】:

    现在可以在 0.5.1 版的 sequelize-fixtures 中使用特殊的 _through 键来实现 m2m 关系:

    [
        {
            "model":"User",
            "data":{
                "id": 123,
                "name": "John"
            }
        },
        {
            "model":"Project",
            "data": {
                "id": 20,
                "name": "The Great Project",
                "users":[
                   {
                        "id": 123,
                        "_through": {
                            "status": "active"
                        }
                   }
                ]
            }
        }
    ]
    

    【讨论】:

      猜你喜欢
      • 2018-08-18
      • 1970-01-01
      • 2020-03-15
      • 2013-08-12
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多