【发布时间】:2022-01-19 00:30:04
【问题描述】:
所以我为我的模型 entretien 和 typeEntretien 创建了一个外键,模型是在 mysql 中创建的,但我找不到我的外键,我正在使用 sequelize 6.13.0,我认为索引中的问题可能关于对象键,我尝试了很多解决方案,但没有一个有效,我是 sequelize 的新手,我在 youtube 上跟着 tutto,我确定索引是错误的
模特企业家
module.exports= (sequelize,DataTypes)=>{
console.log(sequelize);
const entretien =sequelize.define('entretien',{
id:{
type:DataTypes.INTEGER,
primaryKey: true,
autoIncrement:true
},
idType:{
type:DataTypes.INTEGER,
},
idFournisseur:{
type:DataTypes.INTEGER,
},
date:{
type:DataTypes.STRING,
allowNull:false
},
montant:{
type:DataTypes.STRING,
allowNull:false
}
},
{
timestamps:true,
tableName:"entretien",
}
);
entretien.associate=function(){
this.belongsTo(sequelize.models.typeEntretien,{
foreignKey:'idType'
})
this.associate=function(){
this.belongsTo(sequelize.models.fournisseur,{
foreignKey:"idFournisseur",
as:"fournisseur"
})
}}
return entretien
}
```
model typeEntretien
```
module.exports= (sequelize,DataTypes)=>{
const typeEntretien =sequelize.define('typeEntretien',{
id:{
type:DataTypes.INTEGER,
primaryKey:true,
autoIncrement:true
},
libelle:{
type:DataTypes.STRING
}
},
{
timestamps:true,
tableName:"typeEntretien",
}
);
return typeEntretien
}
```
idex.js of sequelize
const dbConfig=require('../config/dbConfig')
const {Sequelize ,DataTypes}=require('sequelize')
const sequelize =new Sequelize(
dbConfig.DB,
dbConfig.USER,
dbConfig.PASSWORD,{
host:dbConfig.HOST,
dialect:dbConfig.dialect,
operatorAliases:false,
options: {
requestTimeout: 60000,
},
pol:{
max:dbConfig.pool.max,
min:dbConfig.pool.min,
acquire:dbConfig.pool.acquire,
idle:dbConfig.pool.idle
}
}
)
sequelize.authenticate()
.then(()=>{
console.log('connected..');
})
.catch(err=>{
console.log('Error' +err);
})
const db={}
db.Sequelize=Sequelize
db.sequelize=sequelize
Object.keys(db).forEach((modelName) => {
console.log(db);
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.users=require('./user.js')(sequelize , DataTypes)
db.conducteur=require('./conducteur.js')(sequelize , DataTypes)
db.voiture=require('./voiture.js')(sequelize , DataTypes)
db.entretien=require('./entretien.js')(sequelize , DataTypes)
db.fournisseur=require('./fournisseur')(sequelize , DataTypes)
db.réparation=require('./réparation')(sequelize , DataTypes)
db.transport=require('./transport')(sequelize , DataTypes)
db.typeEntretien=require('./typeEntretien')(sequelize , DataTypes)
db.marqueVoiture=require('./marqueVoiture')(sequelize , DataTypes)
db.sequelize.sync({force :true})
.then(()=>{
console.log('yes re-sync done');
})
module.exports=db
```
【问题讨论】:
标签: node.js sequelize.js mysql-workbench backend sequelize-cli