diff --git a/migrations/20190830204531-tasks-rename-errorMessage-errorJson.js b/migrations/20190830204531-tasks-rename-errorMessage-errorJson.js index e2ebf5285..be51578e3 100644 --- a/migrations/20190830204531-tasks-rename-errorMessage-errorJson.js +++ b/migrations/20190830204531-tasks-rename-errorMessage-errorJson.js @@ -1,9 +1,20 @@ 'use strict'; +let async = require('async'); + exports.up = function(db, callback) { db.runSql('ALTER TABLE tasks CHANGE errorMessage errorJson TEXT', [], function (error) { if (error) console.error(error); - callback(error); + + // convert error messages into json + db.all('SELECT id, errorJson FROM apps', function (error, apps) { + async.eachSeries(apps, function (app, iteratorDone) { + if (app.errorJson === 'null') return iteratorDone(); + if (app.errorJson === null) return iteratorDone(); + + db.runSql('UPDATE apps SET errorJson = ? WHERE id = ?', [ JSON.stringify({ message: app.errorJson }, app.id)], iteratorDone); + }, callback); + }); }); }; diff --git a/src/appdb.js b/src/appdb.js index a58f924f4..1258ef723 100644 --- a/src/appdb.js +++ b/src/appdb.js @@ -104,11 +104,7 @@ function postProcess(result) { if (envNames[i]) result.env[envNames[i]] = envValues[i]; } - if (result.errorJson === null) { - result.error = null; - } else { - result.error = safe.JSON.parse(result.errorJson) || { message: result.errorJson }; // make legacy error messages are JSON - } + result.error = safe.JSON.parse(result.errorJson); delete result.errorJson; result.taskId = result.taskId ? String(result.taskId) : null;