Я просто схожу с ума от этого, некоторые могут помочь мне, пожалуйста.
Возможно, кто-то уже решил это правильно?
Итак, у меня есть приложение с несколькими источниками данных, и я хочу ихдля автоматического обновления. И все же я не могу поверить, что я должен это сделать ... Разве это не должно быть похоже на общение?
Я поместил этот скрипт в server / boot / 20-autoUpdateDb.js
'use strict';
var cluster = require('cluster');
module.exports = function(app, cb) {
if (cluster.isWorker) {
process.nextTick(cb);
} else {
const updateDS = async dataSources => {
await dataSources.forEach(async (ds, key, arr) => {
if (ds.autoupdate) {
console.log('Proceeding with dataSource:', ds.name);
const x = await new Promise(r => {
ds.autoupdate(err => {
if (err) throw err;
console.log(
// 'Auto Updated Models [' + Object.keys(app.models) + ']:',
'Auto Updated Models in',
ds.name,
'(',
ds.adapter.name,
')',
);
r();
});
});
}
});
};
// I just couldn't find a better way as all datasources
// exist in double ex: db,Db
var appDataSources = [
app.dataSources.db,
app.dataSources.dbData,
app.dataSources.dbPool,
];
updateDS(appDataSources).then(() => {
console.log('Autoupdate of all models done.');
process.nextTick(cb);
});
}
};
в качестве вывода я получаю
Proceeding with dataSource: db
Proceeding with dataSource: dbData
Proceeding with dataSource: dbPool
Auto Updated Models in dbPool ( sqlite3 )
Autoupdate of all models done.
Web server listening at: http://localhost:3000
Browse your REST API at http://localhost:3000/explorer
Auto Updated Models in dbData ( sqlite3 )
Auto Updated Models in db ( sqlite3 )