41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
'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) {
|
|
var m = backup.restoreConfigJson ? JSON.parse(backup.restoreConfigJson) : null;
|
|
if (m) m = JSON.stringify(m.manifest);
|
|
|
|
db.runSql('UPDATE backups SET manifestJson=? WHERE id=?', [ m, backup.id ], next);
|
|
}, callback);
|
|
});
|
|
},
|
|
|
|
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);
|
|
};
|
|
|