我们的MySQL数据库设置了Write集群和Read集群,有没有办法设置Strongloop Loopback模型(例如用户)写入MySQL主机A并从MySQL主机B读取?
答案 0 :(得分:8)
如果要更改单个模型的数据源,请尝试使用attachTo()。例如
app.models.YourModel.attachTo(app.dataSources.readDS);
readData();
...
app.models.YourModel.attachTo(app.dataSources.writeDS);
writeData();
您必须在datasources.json文件中定义readDS和writeDS数据源:
{
"readDS": {
"host": "hostA",
"database": "dbOnHostA",
"username": "user",
"password": "password",
"name": "readDS",
"connector": "mysql"
},
"writeDS": {
"host": "hostB",
"database": "dbOnHostB",
"username": "user",
"password": "password",
"name": "writeDS",
"connector": "mysql"
}
}
或者您可以动态创建数据源。
答案 1 :(得分:2)
在loopback 2.0中,您可以尝试重写getDataSource方法,并根据上下文,可以返回不同的dataSource。但是在loopback 3.0中,上下文已被删除,并且选项未传递给getDataSource,因此实现完美将是一项挑战。
答案 2 :(得分:-1)