按照上面这篇文章的说法使用belongsTo会创建对应的外键约束,但是实际结果并没有创建外键约束
实际结果:并没有对应的userId的外键
这是为什么?
model: User
const Sequelize = require("sequelize");
module.exports = sequelize => {
const User = sequelize.define("user", {
empId: {
type: Sequelize.STRING,
allowNull: false,
unique: true
}
});
return User;
};
model: Account
const Sequelize = require("sequelize");
module.exports = sequelize => {
const Account = sequelize.define("account", {
email: {
type: Sequelize.CHAR(20),
allowNull: false
}
});
return Account;
}
index.js
sequelize
.authenticate()
.then(() => {
const User = require('./model/User')(sequelize);
const Account = require('./model/Account')(sequelize);
sequelize.sync({
force: true
})
.then(async () => {
// User的实例对象将拥有getAccount、setAccount、createAccount方法
User.hasOne(Account); // 在target模型中插入关联键
// Account的实例对象将拥有getUser、setUser、createUser方法
Account.belongsTo(User); // 将关联键插入到source模型中
const user = await User.create({ empId: '1' }); // (1)
const account = await user.createAccount({ email: 'semlinker@gmail.com' }); // (2)
// console.log(account.get({ plain: true }));
})
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});