lazyConnect:true
Будет откладывать соединение до тех пор, пока вы не запросите подключенную к нему модель и не отправите клиенту сообщение об ошибке без сбоя сервера в случае сбоя соединения.
"myDatasource": {
"name": "myDatasource",
"host": "ds.com",
"database": "db",
"username": "root",
"password": "",
"connector": "postgres",
"lazyConnect": true
},
Мой вопрос: есть ли способ запрограммировать API для работы с той частью, которая развивает источник данных A, только когда источник данных B недоступен?
Вы можете использовать события вашего источника данных, чтобы знать, когда менять модели.Вот что я кратко проверил.
server/boot/swap.js
function swapModelDatasource(app, model, ds) {
const name = model.name;
app.deleteModelByName(name);
const m = app.model(ds.createModel(name, model.definition.properties, {
settings: model.settings,
relations: model.settings.relations,
acls: model.settings.acls
}));
}
module.exports = app => {
const ds1 = app.datasources.aws;
const m = app.models.Node;
ds1.on('connected', () => swapModelDatasource(app, m, ds1));
}