diff --git a/config.py b/config.py index 32c24962f..8254f2714 100644 --- a/config.py +++ b/config.py @@ -19,10 +19,6 @@ expansionName = "Carnyx" expansionVersion = "1.0" evemonMinVersion = "4081" -# Database version (int ONLY) -# Increment every time we need to flag for user database upgrade/modification -dbversion = 7 - pyfaPath = None savePath = None staticPath = None diff --git a/eos/db/migration.py b/eos/db/migration.py index 92224c34c..dcf08134c 100644 --- a/eos/db/migration.py +++ b/eos/db/migration.py @@ -1,32 +1,36 @@ import config import shutil import time +import os def getVersion(db): cursor = db.execute('PRAGMA user_version') return cursor.fetchone()[0] def update(saveddata_engine): - currversion = getVersion(saveddata_engine) + dbVersion = getVersion(saveddata_engine) - if currversion == config.dbversion: + files = os.listdir(os.path.join(os.path.dirname(__file__), "migrations")) + appVersion = len([f for f in files if f.startswith("upgrade")]) + + if dbVersion == appVersion: return - if currversion < config.dbversion: + if dbVersion < appVersion: # Automatically backup database toFile = "%s/saveddata_migration_%d-%d_%s.db"%( config.savePath, - currversion, - config.dbversion, + dbVersion, + appVersion, time.strftime("%Y%m%d_%H%M%S")) shutil.copyfile(config.saveDB, toFile) - for version in xrange(currversion, config.dbversion): + for version in xrange(dbVersion, appVersion): module = __import__('eos.db.migrations.upgrade%d'%(version+1), fromlist=True) upgrade = getattr(module, "upgrade", False) if upgrade: upgrade(saveddata_engine) # when all is said and done, set version to current - saveddata_engine.execute('PRAGMA user_version = %d'%config.dbversion) + saveddata_engine.execute('PRAGMA user_version = %d'%appVersion) diff --git a/eos/db/migrations/upgrade8.py b/eos/db/migrations/upgrade8.py index 6097c3799..9d2c04321 100644 --- a/eos/db/migrations/upgrade8.py +++ b/eos/db/migrations/upgrade8.py @@ -1,13 +1,10 @@ """ -Migration 4 +Migration 8 -- Converts modules based on Proteus Module Tiericide +- Converts modules based on Carnyx Module Tiericide Some modules have been unpublished (and unpublished module attributes are removed from database), which causes pyfa to crash. We therefore replace these modules with their new replacements - - Based on http://community.eveonline.com/news/patch-notes/patch-notes-for-proteus/ - and output of itemDiff.py """