34 lines
1.3 KiB
JavaScript
34 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
var async = require('async');
|
|
|
|
exports.up = function(db, callback) {
|
|
// first check precondtion of domain entry in settings
|
|
db.all('SELECT * FROM domains', [ ], function (error, domains) {
|
|
if (error) return callback(error);
|
|
|
|
async.series([
|
|
db.runSql.bind(db, 'START TRANSACTION;'),
|
|
db.runSql.bind(db, 'ALTER TABLE domains ADD COLUMN provider VARCHAR(16) DEFAULT ""'),
|
|
function setProvider(done) {
|
|
async.eachSeries(domains, function (domain, iteratorCallback) {
|
|
var config = JSON.parse(domain.configJson);
|
|
var provider = config.provider;
|
|
delete config.provider;
|
|
|
|
db.runSql('UPDATE domains SET provider = ?, configJson = ? WHERE domain = ?', [ provider, JSON.stringify(config), domain.domain ], iteratorCallback);
|
|
}, done);
|
|
},
|
|
db.runSql.bind(db, 'ALTER TABLE domains MODIFY provider VARCHAR(16) NOT NULL'),
|
|
db.runSql.bind(db, 'COMMIT')
|
|
], callback);
|
|
});
|
|
};
|
|
|
|
exports.down = function(db, callback) {
|
|
db.runSql('ALTER TABLE domains DROP COLUMN provider', function (error) {
|
|
if (error) console.error(error);
|
|
callback(error);
|
|
});
|
|
};
|