Node.js 如何在Sequelize迁移中创建关联?

Node.js 如何在Sequelize迁移中创建关联?,node.js,migration,sequelize.js,Node.js,Migration,Sequelize.js,我正在使用迁移创建实体。当然,它们之间也有一些关系。到目前为止,通过使用sync(true),我享受到了Sequelize在数据库级别为我实现关系的好处 如何在迁移中表达新的关系 一对多:我应该处理外键列吗 多对多:我应该创建中间表并在每个实体的表上设置外键吗 或者:我应该运行迁移,然后同步(false)? 那些不再相关的关系呢?当我使用迁移时,我将sync:false设置为false 为了建立关联,我的模型最终是这样的: User.js: module.exports = function(s

我正在使用迁移创建实体。当然,它们之间也有一些关系。到目前为止,通过使用
sync(true)
,我享受到了Sequelize在数据库级别为我实现关系的好处

如何在迁移中表达新的关系

  • 一对多:我应该处理外键列吗
  • 多对多:我应该创建中间表并在每个实体的表上设置外键吗
  • 或者:我应该运行迁移,然后
    同步(false)

    那些不再相关的关系呢?

    当我使用迁移时,我将sync:false设置为false

    为了建立关联,我的模型最终是这样的:

    User.js:

    module.exports = function(sequelize, DataTypes) {
        var User = sequelize.define("User", {
            "fname": {
                "type": DataTypes.STRING,
                "unique": false,
                "allowNull": false
            },
            "lname": {
                "type": DataTypes.STRING,
                "allowNull": false
            }
        }, {
            "tableName": "Users",
            "classMethods": {
                "associate": function (models) {
                    Locale.hasMany(models.Permissions);
                }
            }
        });
    
        return User;
    };
    
    如果该表不存在,则仍将创建该表。但是,我建议创建表仍然是迁移的一部分。请注意,在迁移过程中,要创建一个包含id、updatedAt、createdAt和PermissionId列的表(例如上面的示例)