From 8638698d61b35a2020e7da7da8800f2243419054 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Sun, 3 May 2020 13:25:45 -0400 Subject: [PATCH] Added schema upgrades for both DBs --- databases/_private.db.sql | 5 ++++ ...rade_1.sql => _upgrade_sponsorTimes_1.sql} | 0 src/databases/databases.js | 27 +++++++++++-------- 3 files changed, 21 insertions(+), 11 deletions(-) rename databases/{_upgrade_1.sql => _upgrade_sponsorTimes_1.sql} (100%) diff --git a/databases/_private.db.sql b/databases/_private.db.sql index 0324481..5239cab 100644 --- a/databases/_private.db.sql +++ b/databases/_private.db.sql @@ -24,6 +24,11 @@ CREATE TABLE IF NOT EXISTS "sponsorTimes" ( "timeSubmitted" INTEGER NOT NULL ); +CREATE TABLE IF NOT EXISTS "config" ( + "key" TEXT NOT NULL, + "value" TEXT NOT NULL +); + CREATE INDEX IF NOT EXISTS sponsorTimes_hashedIP on sponsorTimes(hashedIP); CREATE INDEX IF NOT EXISTS votes_userID on votes(UUID); diff --git a/databases/_upgrade_1.sql b/databases/_upgrade_sponsorTimes_1.sql similarity index 100% rename from databases/_upgrade_1.sql rename to databases/_upgrade_sponsorTimes_1.sql diff --git a/src/databases/databases.js b/src/databases/databases.js index e9d202f..7c3991f 100644 --- a/src/databases/databases.js +++ b/src/databases/databases.js @@ -26,16 +26,8 @@ if (config.createDatabaseIfNotExist && !config.readOnly) { // Upgrade database if required if (!config.readOnly) { - let versionCodeInfo = db.prepare("SELECT value FROM config WHERE key = ?").get("version"); - let versionCode = versionCodeInfo ? versionCodeInfo.value : 0; - - let path = config.schemaFolder + "/_upgrade_" + (versionCode + 1) + ".sql"; - while (fs.existsSync(path)) { - db.exec(fs.readFileSync(path).toString()); - - versionCode = db.prepare("SELECT value FROM config WHERE key = ?").get("version").value; - path = config.schemaFolder + "/_upgrade_" + (versionCode + 1) + ".sql"; - } + ugradeDB(db, "sponsorTimes"); + ugradeDB(privateDB, "private") } // Enable WAL mode checkpoint number @@ -51,4 +43,17 @@ privateDB.exec("pragma mmap_size= 500000000;"); module.exports = { db: db, privateDB: privateDB -}; \ No newline at end of file +}; + +function ugradeDB(db, prefix) { + let versionCodeInfo = db.prepare("SELECT value FROM config WHERE key = ?").get("version"); + let versionCode = versionCodeInfo ? versionCodeInfo.value : 0; + + let path = config.schemaFolder + "/_upgrade_" + prefix + "_" + (versionCode + 1) + ".sql"; + while (fs.existsSync(path)) { + db.exec(fs.readFileSync(path).toString()); + + versionCode = db.prepare("SELECT value FROM config WHERE key = ?").get("version").value; + path = config.schemaFolder + "/_upgrade_" + prefix + "_" + (versionCode + 1) + ".sql"; + } +} \ No newline at end of file