Sequelize는 일반적으로 소속() 연관을 사용할 때 외래 키에 대한 새 열을 생성합니다. 그러나 일부 시나리오에서는 그렇지 않을 수 있습니다.
제공된 사용자 모델에 Sequelize가 role_id 열을 생성하지 못하는 시나리오 중 하나가 설명되어 있습니다. 이는 특히 동일한 프로젝트의 다른 모델이 예상된 동작을 보일 때 우려와 혼란을 야기합니다.
해결책은 모든 모델과 해당 연관의 등록을 중앙 집중화하는 데 있습니다. 한 곳. 이를 통해 Sequelize가 모델 간의 적절한 관계를 설정할 수 있습니다.
// database.js const fs = require('fs'); const path = require('path'); const Sequelize = require('sequelize'); const db = {}; const sequelize = new Sequelize(/* your connection settings here */); const models = path.join(__dirname, 'models'); fs.readdirSync(models).filter(file => file.indexOf('.') !== 0 && file !== 'basename' && file.slice(-3) === '.js').forEach(file => { const model = sequelize['import'](path.join(models, file)); db[model.name] = model; }); Object.keys(db).forEach(modelName => { if (db[modelName].associate) { db[modelName].associate(db); } }); db.Sequelize = Sequelize; db.sequelize = sequelize; module.exports = db;
// some_module.js const db = require('../database'); const users = await db.user.findAll({ where: { [db.Sequelize.Op.or]: [{ first_name: 'Smith' }, { last_name: 'Smith' }] } });
다음 단계를 수행하면 모든 모델이 올바르게 등록되었는지, 해당 연결이 제대로 설정되었는지 확인하여 Sequelize가 외래 키에 필요한 열을 생성할 수 있도록 할 수 있습니다.
위 내용은 Sequelize가 항상 외래 키 열을 생성하지 않는 이유는 무엇이며 이 문제를 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!