Я работаю над node js с postgres дБ и использую Sequelize ORM. мой код ниже, и я не знаю, что не так в моем коде. Пожалуйста, помогите мне.
Клиент. js
module.exports = (sequelize, DataTypes) => {
var customers = sequelize.define('customers', {
customerid: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
customername:
{
type: DataTypes.STRING(100),
allowNull: false,
unique: true
},
customertype:
{
type: DataTypes.STRING(25),
allowNull: false,
},
firstname: DataTypes.STRING(30),
primary_shopid: DataTypes.INTEGER,
secondary_shopid: DataTypes.INTEGER
}, {
timestamps: false,
freezeTableName: true,
});
customers.associate = (models) => {
customers.belongsTo(models.shops, {
as: 'primary_shopid',
foreignKey: 'primary_shopid'
});
customers.belongsTo(models.shops, {
as: 'secondary_shopid',
foreignKey : 'secondary_shopid'
});
};
return customers;
};
Магазины. js
module.exports = (sequelize, DataTypes) => {
var shops = sequelize.define('shops', {
shopid: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
shopfirstname: DataTypes.STRING(30),
shoplastname: DataTypes.STRING(30)
}, {
timestamps: false,
freezeTableName: true
});
shops.associate = (models) => {
shops.hasMany(models.customers, {
as: 'primary_cus',
foreignKey : 'primary_shopid'
});
shops.hasMany(models.customers, {
as: 'secondary_cus',
foreignKey : 'secondary_shopid'
});
};
return shop;
};
и это обе модели создаются на основе схемы имени области, как показано ниже
db.sequelize.createSchema(schemaName).then(() => {
db.sequelize.models.shops.schema(schemaName).sync();
db.sequelize.models.customers.schema(schemaName).sync();
});
Это все работает нормально, но когда я запускаю следующий запрос
db.sequelize.models.customers.schema(schemaname).findAll({
include: [
{
model: shops,
as: 'primary_shopid'
}
]
}).then((results) => {
res.send(results);
});
Это из-за этой ошибки, что не так в моем коде.
Unhandled rejection SequelizeDatabaseError: relation "shops" does not exist
at Query.formatError (********node_modules\sequelize\lib\dialects\postgres\query.js:366:16)