Ich versuche, das Produktmodell mit dem Benutzermodell zu verknüpfen und dabei sicherzustellen, dass die Synchronisierung erzwungen wird, um sicherzustellen, dass die neuesten Änderungen vorhanden sind. Ich bekomme den Fehler, dass Spalten UserId und ProductManagerId nicht erstellt werden.Sequelize-Assoziationsspalten nicht generiert
Warum werden die Spalten nicht automatisch generiert?
Product.js
'use strict';
/* Model ONLY for DePuy Products */
module.exports = function(sequelize, DataTypes) {
var Product = sequelize.define('Product', {
name: {
type: DataTypes.STRING,
allowNull : false
},
sku: {
type:DataTypes.STRING,
allowNull: false,
primaryKey: true,
},
}, {
classMethods: {
associate: function(models) {
Product.belongsTo(models.User,{ as : 'ProductManager'});
// associations can be defined here
}
}
});
Product.sync({force: true}).then(() => {
console.log('Sequelize forced');
})
return Product;
};
user.js
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
allowNull: false,
},
password: {
type: DataTypes.STRING,
allowNull: false,
},
email: {
type: DataTypes.STRING,
unique: true,
},
}, {
classMethods: {
associate: (models) => {
// associations can be defined here
User.hasMany(models.Product);
},
},
freezeTableName: true,
});
// FORCE FOR NOW Use only if make model changes
User.sync({force: true}).then(() => {
console.log('Sequelize forced');
})
return User;
};
Dialect: Postgres Sequelize Version: 3.30.1
Ps. Ich habe ursprünglich sequelize-cli verwendet, um die Modelldatei zu erstellen, und dann nach meinen Bedürfnissen geändert.