sequelize(v 4.3.0)中的关联与自定义主键

时间:2017-07-11 22:19:16

标签: postgresql associations sequelize.js

我在这下面有两个型号:

商户:

'use strict';
var models = require('../models');
module.exports = function (sequelize, DataTypes) {
const Merchant = sequelize.define('Merchant', {
    email: DataTypes.STRING,
    password: DataTypes.STRING,
    id: {
        type: DataTypes.UUID,
        allowNull: false,
        primaryKey: true,
        defaultValue: DataTypes.UUIDV4
    }
}, {
    classMethods: {
        associate: function (models) {
            Merchant.hasMany(models.Item);
        }
    }
});
return Merchant;
};


Item: 
'use strict';
module.exports = function (sequelize, DataTypes) {
var Item = sequelize.define('Item', {
    name: DataTypes.STRING,
    id: {
        type: DataTypes.UUID,
        allowNull: false,
        primaryKey: true,
        defaultValue: DataTypes.UUIDV4
    },
    type: DataTypes.STRING,
    price: DataTypes.STRING,
    details: DataTypes.STRING,
    availability: DataTypes.BOOLEAN,
    itemImageUrl: DataTypes.STRING
}, {
    classMethods: {
        associate: function (models) {
            Item.belongsTo(models.Merchant);
        }
    }
});
return Item;
};

每个商家都有很多商品。这两个模型在数据库中没有生成任何关系,我的意思是,item表应该有一个名为merchantId的列。任何人都可以看看我生成的问题在哪里。提前致谢

1 个答案:

答案 0 :(得分:0)

我从他们的例子中找到了我的解决方案。以下是他们示例中的两个示例代码,它可能在将来帮助其他人。

https://github.com/sequelize/express-example/blob/master/models/user.js https://github.com/sequelize/express-example/blob/master/models/task.js

完整样本: https://github.com/sequelize/express-example