egg-sequelize: 由于core项目中loadToApp已经是异步函数,导致在sequelize中没有正确的设置表对象
- Dominant language
- TypeScript
- Stars
- 19k
- Forks
- 1.8k
- PR merge metrics
- No merged PRs in 30d
Description
### 在此输入你需要反馈的 Bug 具体信息(Bug in Detail):
```
app.loader.loadToApp(modelDir, target, {
caseStyle: 'upper',
ignore: config.exclude,
filter(model) {
if (!model || !model.sequelize) return false;
models.push(model);
return true;
},
initializer(factory) {
if (typeof factory === 'function') {
return factory(app, sequelize);
}
},
});
//这里由于loadToApp是异步的会直接退出,导致后来的ctx.model上没有具体的表对象
Object.assign(model[delegate[len - 1]], app[target]);
models.forEach(model => {
typeof model.associate === 'function' && model.associate();
});
return model[delegate[len - 1]];
```
### 可复现问题的仓库地址(Reproduction Repo)
```
app.loader.loadToApp(modelDir, target, {
caseStyle: 'upper',
ignore: config.exclude,
filter(model) {
if (!model || !model.sequelize) return false;
models.push(model);
return true;
},
initializer(factory) {
if (typeof factory === 'function') {
return factory(app, sequelize);
}
},
});
//这里由于loadToApp是异步的会直接退出,导致后来的ctx.model上没有具体的表对象
Object.assign(model[delegate[len - 1]], app[target]);
models.forEach(model => {
typeof model.associate === 'function' && model.associate();
});
return model[delegate[len - 1]];
```
### Node 版本号:
v23.2.0
### Eggjs 版本号:
4.0.9
### 相关插件名称与版本号(PlugIn and Name):
"egg-sequelize": "^6.0.0",
### 操作平台与版本号(Platform and Version):
mac
Contributor guide
Assessment
This issue has not been assessed yet.