2017-11-16 11:22:09 -08:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
var async = require('async');
|
|
|
|
|
|
|
|
|
|
exports.up = function(db, callback) {
|
|
|
|
|
async.series([
|
|
|
|
|
db.runSql.bind(db, 'ALTER TABLE backups ADD COLUMN manifestJson TEXT'),
|
|
|
|
|
|
|
|
|
|
db.runSql.bind(db, 'START TRANSACTION;'),
|
|
|
|
|
|
|
|
|
|
// fill all the backups with restoreConfigs from current apps
|
|
|
|
|
function addManifests(callback) {
|
|
|
|
|
console.log('Importing manifests');
|
|
|
|
|
|
|
|
|
|
db.all('SELECT * FROM backups WHERE type="app"', function (error, backups) {
|
|
|
|
|
if (error) return callback(error);
|
|
|
|
|
|
|
|
|
|
async.eachSeries(backups, function (backup, next) {
|
2017-11-17 22:29:13 -08:00
|
|
|
var m = backup.restoreConfigJson ? JSON.parse(backup.restoreConfigJson) : null;
|
|
|
|
|
if (m) m = JSON.stringify(m.manifest);
|
2017-11-16 11:22:09 -08:00
|
|
|
|
|
|
|
|
db.runSql('UPDATE backups SET manifestJson=? WHERE id=?', [ m, backup.id ], next);
|
2017-11-18 02:10:55 -08:00
|
|
|
}, callback);
|
2017-11-16 11:22:09 -08:00
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
db.runSql.bind(db, 'COMMIT'),
|
|
|
|
|
|
|
|
|
|
// remove the restoreConfig
|
|
|
|
|
db.runSql.bind(db, 'ALTER TABLE backups DROP COLUMN restoreConfigJson')
|
|
|
|
|
], callback);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
exports.down = function(db, callback) {
|
|
|
|
|
async.series([
|
|
|
|
|
db.runSql.bind(db, 'ALTER TABLE backups DROP COLUMN manifestJson'),
|
|
|
|
|
db.runSql.bind(db, 'ALTER TABLE backups ADD COLUMN restoreConfigJson TEXT'),
|
|
|
|
|
], callback);
|
|
|
|
|
};
|
|
|
|
|
|