From 7823144bd97810f928eea532a5f35d3afd00cd36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 7 Oct 2019 14:19:35 -0400 Subject: [PATCH] fix: #7940, run upgrade scripts on startup --- src/start.js | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/start.js b/src/start.js index 04152a2822..442bba134e 100644 --- a/src/start.js +++ b/src/start.js @@ -18,11 +18,11 @@ start.start = async function () { await db.init(); const meta = require('./meta'); - await Promise.all([ - db.checkCompatibility(), - meta.configs.init(), - require('./upgrade').check(), - ]); + await db.checkCompatibility(); + await meta.configs.init(); + if (nconf.get('runJobs')) { + await runUpgrades(); + } if (nconf.get('dep-check') === undefined || nconf.get('dep-check') !== false) { await meta.dependencies.check(); @@ -50,10 +50,6 @@ start.start = async function () { } } catch (err) { switch (err.message) { - case 'schema-out-of-date': - winston.error('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:'); - winston.error(' ./nodebb upgrade'); - break; case 'dependencies-out-of-date': winston.error('One or more of NodeBB\'s dependent packages are out-of-date. Please run the following command to update them:'); winston.error(' ./nodebb upgrade'); @@ -72,6 +68,19 @@ start.start = async function () { } }; +async function runUpgrades() { + const upgrade = require('./upgrade'); + try { + await upgrade.check(); + } catch (err) { + if (err && err.message === 'schema-out-of-date') { + await upgrade.run(); + } else { + throw err; + } + } +} + function setupConfigs() { // nconf defaults, if not set in config if (!nconf.get('sessionKey')) {