From 68cf748e7772272dea4bd5c2d7680343cf129d80 Mon Sep 17 00:00:00 2001 From: advplyr Date: Wed, 20 Apr 2022 08:31:57 -0500 Subject: [PATCH] Fix previous version check for db migration to v2 --- server/Db.js | 14 ++++++++++++++ server/Server.js | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/server/Db.js b/server/Db.js index e3700d7e..d3ac3938 100644 --- a/server/Db.js +++ b/server/Db.js @@ -109,6 +109,20 @@ class Db { return this.init() } + // Get previous server version before loading DB to check whether a db migration is required + // returns null if server was not upgraded + checkPreviousVersion() { + return this.settingsDb.select(() => true).then((results) => { + if (results.data && results.data.length) { + var serverSettings = results.data.find(s => s.id === 'server-settings') + if (serverSettings && serverSettings.version && serverSettings.version !== version) { + return serverSettings.version + } + } + return null + }) + } + async init() { await this.load() diff --git a/server/Server.js b/server/Server.js index 2c2c77e1..ebfeaed9 100644 --- a/server/Server.js +++ b/server/Server.js @@ -117,7 +117,12 @@ class Server { await this.playbackSessionManager.removeOrphanStreams() await this.downloadManager.removeOrphanDownloads() - if (version.localeCompare('2.0.0') <= 0) { // Old version data model migration + var previousVersion = await this.db.checkPreviousVersion() // Returns null if same server version + if (previousVersion) { + Logger.debug(`[Server] Upgraded from previous version ${previousVersion}`) + } + if (previousVersion && previousVersion.localeCompare('2.0.0') < 0) { // Old version data model migration + Logger.debug(`[Server] Previous version was < 2.0.0 - migration required`) await dbMigration.migrate(this.db) } else { await this.db.init()