Reputation: 6175
I have 2 models (on separate files:
user.js
module.exports = (sequelize, DataTypes) => {
let user = sequelize.define('user', {
user_id: DataTypes.INTEGER,
first_name: DataTypes.STRING,
last_name: DataTypes.STRING,
email: DataTypes.STRING,
password: DataTypes.STRING,
phone: DataTypes.STRING,
is_phone_verified: DataTypes.BOOLEAN,
}, {
underscored: true,
classMethods: {
associate(models) {
user.hasOne(models.userBankAccount);
},
},
});
return user;
};
user_bank_account.js
module.exports = (sequelize, DataTypes) => {
const userBankAccount = sequelize.define('user_bank_account', {
user_bank_account_id: DataTypes.INTEGER,
user_id: DataTypes.INTEGER,
item_id: DataTypes.STRING,
access_token: DataTypes.STRING,
checking_account_id: DataTypes.STRING,
}, {
underscored: true,
classMethods: {
associate(models) {
userBankAccount.belongsTo(models.user);
},
},
});
return userBankAccount;
};
When I run sequelize db:migrate
, no foreign keys are created in the Postgres DB.
I use sequelize v4.
Any ideas?
Upvotes: 1
Views: 408
Reputation: 21
The classMethods
attribute doesn't work for v4 of Sequelize.
You should call the associate method directly. For example:
userBankAccount.associate = function(models) {}
user.associate = function(models) {}
Upvotes: 2