diff --git a/migrations/20171027212823-domains-add-table.js b/migrations/20171027212823-domains-add-table.js new file mode 100644 index 000000000..cca8d1c95 --- /dev/null +++ b/migrations/20171027212823-domains-add-table.js @@ -0,0 +1,21 @@ +'use strict'; + +exports.up = function(db, callback) { + var cmd = "CREATE TABLE domains(" + + "domain VARCHAR(128) NOT NULL," + + "zoneName VARCHAR(128) NOT NULL," + + "configJson TEXT," + + "PRIMARY KEY (domain))"; + + db.runSql(cmd, function (error) { + if (error) console.error(error); + callback(error); + }); +}; + +exports.down = function(db, callback) { + db.runSql('DROP TABLE domains', function (error) { + if (error) console.error(error); + callback(error); + }); +}; diff --git a/migrations/schema.sql b/migrations/schema.sql index 18ddbb68e..213680abb 100644 --- a/migrations/schema.sql +++ b/migrations/schema.sql @@ -142,3 +142,10 @@ CREATE TABLE IF NOT EXISTS mailboxes( creationTime TIMESTAMP, PRIMARY KEY (name)); + +CREATE TABLE IF NOT EXISTS domains( + domain VARCHAR(128) NOT NULL, /* if this needs to be larger, InnoDB has a limit of 767 bytes for PRIMARY KEY values! */ + zoneName VARCHAR(128) NOT NULL, /* this mostly contains the domain itself again */ + configJson TEXT, /* JSON containing the dns backend provider config */ + + PRIMARY KEY (domain));