diff --git a/migrations/20171026212925-apps-add-domain.js b/migrations/20171026212925-apps-add-domain.js index 7c99426c8..0e5fb3a63 100644 --- a/migrations/20171026212925-apps-add-domain.js +++ b/migrations/20171026212925-apps-add-domain.js @@ -4,66 +4,51 @@ var async = require('async'), safe = require('safetydance'); exports.up = function(db, callback) { - function prepareTestSetupIfNeeded(done) { - if (process.env.BOX_ENV !== 'test') return done(); - - const settings = [ - [ 'domain', JSON.stringify({ fqdn: 'example.com', zoneName: 'example.com' })], - [ 'dns_config', JSON.stringify({ provider: 'manual', wildcard: true })] - ]; - - async.eachSeries(settings, function (setting, callback) { - db.runSql('INSERT INTO settings (name, value) VALUES (?, ?) ON DUPLICATE KEY UPDATE value=VALUES(value)', setting, callback); - }, done); - } - - prepareTestSetupIfNeeded(function (error) { + // first check precondtion of domain entry in settings + db.all('SELECT * FROM settings WHERE name = ?', [ 'domain' ], function (error, result) { if (error) return callback(error); - // first check precondtion of domain entry in settings - db.all('SELECT * FROM settings WHERE name = ?', [ 'domain' ], function (error, result) { - if (error) return callback(error); + var domain = {}; + if (result[0]) domain = safe.JSON.parse(result[0].value) || {}; - var domain = {}; - if (result[0]) domain = safe.JSON.parse(result[0].value) || {}; + async.series([ + db.runSql.bind(db, 'START TRANSACTION;'), + function addAppsDomainColumn(done) { + db.runSql('ALTER TABLE apps ADD COLUMN domain VARCHAR(128)', [], done); + }, + function setAppDomain(done) { + if (!domain.fqdn) return done(); // skip for new cloudrons without a domain + db.runSql('UPDATE apps SET domain = ?', [ domain.fqdn ], done); + }, + function addAppsLocationDomainUniqueConstraint(done) { + db.runSql('ALTER TABLE apps ADD UNIQUE location_domain_unique_index (location, domain)', [], done); + }, + function removePresetupAdminGroupIfNew(done) { + // do not delete on update, will update the record in setMailboxesDomain() + if (domain.fqdn) return done(); - async.series([ - db.runSql.bind(db, 'START TRANSACTION;'), - function addAppsDomainColumn(done) { - db.runSql('ALTER TABLE apps ADD COLUMN domain VARCHAR(128)', [], done); - }, - function setAppDomain(done) { - if (!domain.fqdn) return done(); // skip for new cloudrons without a domain - db.runSql('UPDATE apps SET domain = ?', [ domain.fqdn ], done); - }, - function addAppsLocationDomainUniqueConstraint(done) { - db.runSql('ALTER TABLE apps ADD UNIQUE location_domain_unique_index (location, domain)', [], done); - }, - function removePresetupAdminGroupIfNew(done) { - // do not delete on update, will update the record in setMailboxesDomain() - if (domain.fqdn) return done(); + // this will be finally created once we have a domain when we create the owner in user.js + const ADMIN_GROUP_ID = 'admin'; // see constants.js + db.runSql('DELETE FROM groups WHERE id = ?', [ ADMIN_GROUP_ID ], function (error) { + if (error) return done(error); - // this will be finally created once we have a domain when we create the owner in user.js - const ADMIN_GROUP_ID = 'admin'; // see constants.js - db.runSql('DELETE FROM groups WHERE id = ?', [ ADMIN_GROUP_ID ], function (error) { - if (error) return done(error); - - db.runSql('DELETE FROM mailboxes WHERE ownerId = ?', [ ADMIN_GROUP_ID ], done); - }); - }, - function addMailboxesDomainColumn(done) { - db.runSql('ALTER TABLE mailboxes ADD COLUMN domain VARCHAR(128)', [], done); - }, - function setMailboxesDomain(done) { - if (!domain.fqdn) return done(); // skip for new cloudrons without a domain - db.runSql('UPDATE mailboxes SET domain = ?', [ domain.fqdn ], done); - }, - function dropAppsLocationUniqueConstraint(done) { - db.runSql('ALTER TABLE apps DROP INDEX location', [], done); - }, - db.runSql.bind(db, 'COMMIT') - ], callback); - }); + db.runSql('DELETE FROM mailboxes WHERE ownerId = ?', [ ADMIN_GROUP_ID ], done); + }); + }, + function addMailboxesDomainColumn(done) { + console.log('add mailboxes domain') + db.runSql('ALTER TABLE mailboxes ADD COLUMN domain VARCHAR(128)', [], done); + }, + function setMailboxesDomain(done) { + if (!domain.fqdn) return done(); // skip for new cloudrons without a domain + console.log('update mailboxes domain') + db.runSql('UPDATE mailboxes SET domain = ?', [ domain.fqdn ], done); + }, + function dropAppsLocationUniqueConstraint(done) { + db.runSql('ALTER TABLE apps DROP INDEX location', [], done); + }, + db.runSql.bind(db, 'COMMIT') + ], callback); }); };