How to configure two different datasource for a model in Strongloop Loopback framework?

前端 未结 3 1604

Our MySQL database are set up with Write clusters and Read clusters, is there a way to set up Strongloop Loopback Model (e.g. User) to Write to MySQL Host A and Read from My

相关标签:
3条回答
  • 2021-01-05 09:23

    Try to use attachTo() if you want to change datasource for a single model. For example

    app.models.YourModel.attachTo(app.dataSources.readDS);
    readData();
    ...
    app.models.YourModel.attachTo(app.dataSources.writeDS);
    writeData();
    

    You will have to define readDS and writeDS datasources in your datasources.json file:

    {
     "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"
      }
    }
    

    Or you can create your datasources dynamically.

    0 讨论(0)
  • 2021-01-05 09:23

    In loopback 2.0, You can try overriding getDataSource method and based on context, you can return different dataSource. However in loopback 3.0, context has been removed, and options is not passed to getDataSource, so it will be a challenge to achieve perfection.

    0 讨论(0)
  • 2021-01-05 09:23

    You can define as many datasources as you wish as documented here

    You should then be able to setup how you control the data by adding an ACL to control the access type. In this case READ or WRITE. Documentation on this can be found here

    0 讨论(0)
提交回复
热议问题