Я пытаюсь создать связь между двумя таблицами. Я получаю ошибку, что таблицы не связаны.Среднее количество стеков -> Sequelize Mysql Association
'use strict';
module.exports = function(sequelize, DataTypes) {
var Product = sequelize.define('Product', {
name: DataTypes.TEXT,
description: DataTypes.TEXT,
manufacturer: DataTypes.CHAR(150),
stockCode: DataTypes.CHAR(150),
price: DataTypes.FLOAT,
weight: DataTypes.FLOAT,
stockLevel: DataTypes.FLOAT,
imageUrl: DataTypes.STRING,
category: DataTypes.CHAR(50),
pathId: DataTypes.INTEGER(11),
sku: DataTypes.CHAR(64),
upc: DataTypes.CHAR(64),
ean: DataTypes.CHAR(64),
jan: DataTypes.CHAR(64),
isbn: DataTypes.CHAR(64),
stockStatusId: DataTypes.INTEGER(11),
imageDest: DataTypes.TEXT,
image: DataTypes.TEXT,
points: DataTypes.INTEGER(8),
shipping: DataTypes.INTEGER(1),
dateAvaliable: DataTypes.DATE,
weightClassId: DataTypes.INTEGER(11),
lengthClassId: DataTypes.INTEGER(11),
length: DataTypes.DECIMAL(15,8),
width: DataTypes.DECIMAL(15,8),
height: DataTypes.DECIMAL(15,8),
subtract: DataTypes.INTEGER(1),
minimum: DataTypes.INTEGER(11),
sortOrder: DataTypes.INTEGER(11),
tag: DataTypes.TEXT,
metaTitle: DataTypes.CHAR(255),
metaDescription: DataTypes.CHAR(255),
metaKeyword: DataTypes.CHAR(255),
discontinued: {
type :DataTypes.BOOLEAN,
defaultValue : 0
},
},
{
associate: function(models){
Product.belongsTo(models.Supplier);
//Product.hasMany(models.ProductCategoryMatch);
}
}
);
return Product;
};
и
'use strict';
module.exports = function(sequelize, DataTypes) {
var ProductCategoryMatch = sequelize.define('ProductCategoryMatch', {
total: DataTypes.INTEGER,
count: DataTypes.INTEGER,
productId: DataTypes.INTEGER,
// categoryId: DataTypes.INTEGER,
},
{
associate: function(models){
ProductCategoryMatch.belongsTo(models.Product, {foreignkey : 'ProductId'});
// ProductCategoryMatch.belongsTo(models.Category, {foreignkey : 'categoryId'});
}
}
);
return ProductCategoryMatch;
};
Я уверен, что таблица создания правильно
CREATE TABLE IF NOT EXISTS ProductCategoryMatches
(id
INTEGER NOT NULL AUTO_INCREMENT, total
INTEGER, count
INTEGER, ProductId
INTEGER, createdAt
DATETIME NOT NULL, updatedAt
DATETIME NOT NULL, PRIMARY КЛЮЧ (id
), ИНОСТРАННЫЙ КЛЮЧ (ProductId
) ССЫЛКИ Products
(id
) ВКЛ. УДАЛИТЬ НЕТ ДЕЙСТВИЙ НА ОБНОВЛЕНИИ CASCADE) ENGINE = InnoDB;
Тогда, когда я пытаюсь найти, я получаю сообщение об ошибке Ошибка: ProductCategoryMatch не связан с продуктом!
/** * Список продуктов и есть категории */ exports.categories = функция (Req, Рез) {
db.Product.findAll({
attributes : [
'name',
// 'ProductCategoryMatch.count'
],
include : [
{ model: db.ProductCategoryMatch }
],
// order : [
// ]
}).then(function(products){
return res.jsonp(products);
}).catch(function(err){
return res.render(500, {
error: err,
status: 500
});
});
};