1

我有一个模型,我需要切换dataSources只要我想要。为此,我在该模型上创建了一个远程方法,并使用了方法。如何在不止一次的环回中切换模型的数据源? 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', 
    ... 
} 

这样看来,我不能改变的数据源已被同一模型先前使用的数据源......我注意到,这个问题是不是切换到新的数据源,而是试图附加以前由同一个模型附加的数据源。

回答

1

也许最好的选择是重新加载所有模型。是否有可能发生在回送中?

+0

我无法在他们的文档上找到有关在执行期间重新加载模型的任何内容。 –