diff --git a/nzbtomedia/databases/mainDB.py b/nzbtomedia/databases/mainDB.py index 85f57c8e..c4ad8980 100644 --- a/nzbtomedia/databases/mainDB.py +++ b/nzbtomedia/databases/mainDB.py @@ -3,7 +3,7 @@ from nzbtomedia import logger, nzbToMediaDB from nzbtomedia.nzbToMediaUtil import backupVersionedFile MIN_DB_VERSION = 1 # oldest db version we support migrating from -MAX_DB_VERSION = 1 +MAX_DB_VERSION = 2 def backupDatabase(version): logger.info("Backing up database before upgrade") @@ -22,11 +22,11 @@ class InitialSchema(nzbToMediaDB.SchemaUpgrade): return self.hasTable("db_version") def execute(self): - if not self.hasTable("history") and not self.hasTable("db_version"): + if not self.hasTable("downloads") and not self.hasTable("db_version"): queries = [ "CREATE TABLE db_version (db_version INTEGER);", - "CREATE TABLE downloads (input_directory TEXT, input_name TEXT PRIMARY KEY, input_hash TEXT, input_id TEXT, client_agent TEXT, status INTEGER, last_update NUMERIC);", - "INSERT INTO db_version (db_version) VALUES (1);" + "CREATE TABLE downloads (input_directory TEXT, input_name TEXT, input_hash TEXT, input_id TEXT, client_agent TEXT, status INTEGER, last_update NUMERIC, CONSTRAINT pk_downloadID PRIMARY KEY (input_directory, input_name));", + "INSERT INTO db_version (db_version) VALUES (2);" ] for query in queries: self.connection.action(query) @@ -46,4 +46,11 @@ class InitialSchema(nzbToMediaDB.SchemaUpgrade): cur_db_version) + ") has been incremented past what this version of nzbToMedia supports (" + \ str(MAX_DB_VERSION) + ").\n" + \ "If you have used other forks of nzbToMedia, your database may be unusable due to their modifications." - ) \ No newline at end of file + ) + if cur_db_version < MAX_DB_VERSION: # We need to upgrade. + queries = [ + "ALTER TABLE downloads ADD CONSTRAINT pk_downloadID PRIMARY KEY (input_directory, input_name);", + "INSERT INTO db_version (db_version) VALUES (2);" + ] + for query in queries: + self.connection.action(query) \ No newline at end of file diff --git a/nzbtomedia/nzbToMediaDB.py b/nzbtomedia/nzbToMediaDB.py index a0904ae9..5cac0593 100644 --- a/nzbtomedia/nzbToMediaDB.py +++ b/nzbtomedia/nzbToMediaDB.py @@ -255,7 +255,7 @@ class SchemaUpgrade(object): def checkDBVersion(self): result = self.connection.select("SELECT db_version FROM db_version") if result: - return int(result[0]["db_version"]) + return int(result[-1]["db_version"]) else: return 0