From 8eecffd3d51d66988be739472778ed9c67b392f2 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Sun, 3 May 2020 12:01:49 -0400 Subject: [PATCH] Changed from version table to a key-value config table. --- databases/_sponsorTimes.db.sql | 5 +++-- databases/_upgrade_0.sql | 4 ++-- src/databases/databases.js | 8 ++++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/databases/_sponsorTimes.db.sql b/databases/_sponsorTimes.db.sql index 707cb5c..a3c8034 100644 --- a/databases/_sponsorTimes.db.sql +++ b/databases/_sponsorTimes.db.sql @@ -25,8 +25,9 @@ CREATE TABLE IF NOT EXISTS "categoryVotes" ( "votes" INTEGER NOT NULL default '0' ); -CREATE TABLE IF NOT EXISTS "version" ( - "code" INTEGER NOT NULL default '0' +CREATE TABLE IF NOT EXISTS "config" ( + "key" TEXT NOT NULL, + "value" TEXT NOT NULL ); CREATE INDEX IF NOT EXISTS sponsorTimes_videoID on sponsorTimes(videoID); diff --git a/databases/_upgrade_0.sql b/databases/_upgrade_0.sql index 4f747bc..5629cc8 100644 --- a/databases/_upgrade_0.sql +++ b/databases/_upgrade_0.sql @@ -19,7 +19,7 @@ INSERT INTO sqlb_temp_table_1 SELECT videoID,startTime,endTime,votes,"1",UUID,us DROP TABLE sponsorTimes; ALTER TABLE sqlb_temp_table_1 RENAME TO "sponsorTimes"; -/* Increase version number */ -INSERT INTO version VALUES(1); +/* Add version to config */ +INSERT INTO config (key, value) VALUES("version", 1); COMMIT; \ No newline at end of file diff --git a/src/databases/databases.js b/src/databases/databases.js index bd3aad1..013210b 100644 --- a/src/databases/databases.js +++ b/src/databases/databases.js @@ -26,12 +26,16 @@ if (config.createDatabaseIfNotExist && !config.readOnly) { // Upgrade database if required if (!config.readOnly) { - let versionCode = db.prepare("SELECT code FROM version").get() || 0; + let versionCodeInfo = db.prepare("SELECT value FROM config WHERE key = ?").get("version"); + let versionCode = versionCodeInfo ? versionCodeInfo.value : 0; + + console.log(versionCode) + let path = config.schemaFolder + "/_upgrade_" + versionCode + ".sql"; while (fs.existsSync(path)) { db.exec(fs.readFileSync(path).toString()); - versionCode = db.prepare("SELECT code FROM version").get(); + versionCode = db.prepare("SELECT value FROM config WHERE key = ?").get("version").value; path = config.schemaFolder + "/_upgrade_" + versionCode + ".sql"; } }