Почему бы не создать внешний ключ с геттерами и сеттерами в sequelize?

I’M new to sequelize. Я реализовал сеттеры и геттеры в моей модели, а затем я добавил внешний ключ, но он не создается. Он создается только при удалении геттеров и сеттеров.
Я делаю что-то не так?

Модельная Зона

module.exports = function(sequelize, DataTypes) {
const Zone = sequelize.define('Zone', {
    zone: {
        type: DataTypes.STRING,
        allowNull: false
    }
},{
    getterMethods: {
        zone: () => {
            return this.getDataValue('zone');
        }
    },
    setterMethods: {
        zone: (zone) => {
            return this.setDataValue('zone', zone);
        }
    }
},{
    classMethods: {
        associate: (models) => {
            Zone.hasMany(models.Client, {
                foreignKey: 'zone_id',
                as: 'zoneFk'
            });
        },
    },
});
return Zone;
};

Модель Клиента

module.exports = (sequelize, DataTypes) => {
const Client = sequelize.define('Client',{
      //atributtes...
}, {
    classMethods: {
        associate: (models) => {
            Client.belongsTo(models.Zone, {
                foreignKey: 'zone_id',
                onDelete: 'CASCADE'
            });
        },
    },
});
return Client;
};

1 ответ

  1. первый аргумент sequelize.определение взятий определение столбцов как

     sequelize.define('Zone', {
        zone: {
            type: DataTypes.STRING,
            allowNull: false
        },
        zone_id: {
             type:DataTypes.INTEGER,
             primaryKey: true,
             //autoIncrement:true
         }
    },
    

    также здесь zone_id должен быть уникальным / первичным ключом, чтобы он соответствовал уникальному значению.