diff --git a/pisi/api.py b/pisi/api.py index 7d7ab0ba..f742c947 100644 --- a/pisi/api.py +++ b/pisi/api.py @@ -358,7 +358,7 @@ def rebuild_db(files=False): def destroy(files): #from pisi.lockeddbshelve import LockedDBShelf - pisi.lockeddbshelve.init_dbenv(write=True) + pisi.lockeddbshelve.init_dbenv(write=True, writeversion=True) #TODO: either don't delete version files here, or remove force flag... import bsddb3.db for db in os.listdir(ctx.config.db_dir()): diff --git a/pisi/lockeddbshelve.py b/pisi/lockeddbshelve.py index 9223b684..6519d509 100644 --- a/pisi/lockeddbshelve.py +++ b/pisi/lockeddbshelve.py @@ -45,11 +45,14 @@ def check_dbversion(versionfile, ver, write=False, update=False): ls = verfile.readlines() currver = Version(ls[0]) dbver = Version(ver) - if currver < dbver and not update: - raise Error(_('Database version for %s insufficient. Please run rebuild-db command.') % versionfile) + if currver < dbver: + if not update: + raise Error(_('Database version for %s insufficient. Please run rebuild-db command.') % versionfile) + else: + pass # continue to update, then elif currver > dbver: raise Error(_('Database version for %s greater than PiSi version. You need a newer PiSi.') % versionfile) - else: + elif not update: return True # db version is OK else: firsttime = True