Для всех, кто сталкивался с этой проблемой, я так решил ее.
1) Создайте новый файл, который вы будете запускать в своем скрипте npm.
2) Iв итоге завернул вызов процесса в child_process
exec
, а затем завершил процесс, когда я получил вышеупомянутое сообщение console.log, так как сама библиотека ничего не разрешает на этом этапе.
// myRuntimeFile.js --> Make sure this file is in the same directory where your .sequelizerc file lives
(async()=> {
const { exec } = require('child_process');
await new Promise((resolve, reject) => {
const migrate = exec(
'sequelize db:migrate',
{ env: process.env },
(err, stdout, stderr) => {
resolve();
}
);
// Listen for the console.log message and kill the process to proceed to the next step in the npm script
migrate.stdout.on('data', (data) => {
console.log(data);
if (data.indexOf('No migrations were executed, database schema was already up to date.') !== -1) {
migrate.kill();
}
});
});
})();
Очевидно, что приведенный выше код не идеален, но, надеюсь, он будет временным, пока внутренности этого крайнего случая не будут должным образом разрешены в обещании.
3) Обновите ваш сценарий npm
следующим образом:
"start": "node myRuntimeFile.js && node index.js"
Или, если вы работаете на компьютере с Windows и не можете использовать &&
, вы можете использовать библиотеку npm-run-all
.