如何使用sequelize ORM在postgres中定义外键约束?

时间:2019-11-03 19:02:36

标签: node.js postgresql foreign-keys sequelize.js

我正在尝试在两个表之间创建一对多外键约束。客户可以有许多环境。

这是我在模型中的摘录。

Client.associate = function(models) {
   Client.hasMany(models.Enviornment, {as: 'enviornments', foreignKey: 'clientId'})
 };

1 个答案:

答案 0 :(得分:0)

解决方案在这里。

客户端具有许多环境。 (一对多关联)

这是模型客户端的代码段。

module.exports = (sequelize, DataTypes) => {

let client = sequelize.define ('client', {
    id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true, field: 'id' },
   ...
    }, {

    associate: models => {
        client.hasMany (models.enviornment, {
            foreignKey: { name: 'client_id', allowNull: false }
        });
    },

});
return client;
};

这是模型环境的代码段。

module.exports = (sequelize, DataTypes) => {

let enviornment = sequelize.define ('enviornment', {
    id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true, field: 'id' },
   ...
    }, {

    associate: models => {
        enviornment.belongsTo (models.client, {
            foreignKey: { name: 'client_id', allowNull: false }
        });
    },

});
 return enviornment;
};