我有一个模型,我需要随时切换数据源。为此,我在该模型上创建了一个远程方法并使用了attachTo()方法。
// myModel.js
switchDataSource = function(req, fn){
const app = MyModel.app;
console.log('req.dataSource ', req.dataSource);
if(req.dataSource === 'datasource1'){
MyModel.attachTo(app.dataSources.datasource1);
} else if(req.dataSource === 'datasource2'){
MyModel.attachTo(app.dataSources.pagarmeTest);
}
console.log('Datasource Attached: ', MyModel.getDataSource().settings.name);
fn();
}
我第一次调用远程方法时,数据源会相应更改。
例如,datasource1
附加到myModel
,现在我用 调用远程方法datasource2
。这将工作得很好。
但是,如果我调用这个远程方法,传递datasource1
- 之前附加的那个myModel
- 它不会工作。console.log(Model.getDataSource().settings.name)显示数据源已更改,但是当我使用模型及其数据源时,它仍然是前一个。
在datasources.local.js上,我已经声明了我将不断地从我的模型中附加和分离的数据源Model
。
// datasources.local.js
exports.datasource1 = {
name: 'datasource1',
connector: 'rest',
...
}
exports.datasource2 = {
name: 'datasource2',
connector: 'rest',
...
}
因此,似乎我无法将数据源更改为同一模型以前使用过的数据源...我注意到问题不是切换到新的数据源,而是尝试附加之前已附加的数据源同型号。