summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGregory Becker <becker33@llnl.gov>2016-05-05 16:58:00 -0700
committerGregory Becker <becker33@llnl.gov>2016-05-05 16:58:00 -0700
commit11b62114bb69add79e5a86232562b24e42171717 (patch)
tree60af1f1d1b075ea394b7414636ff89aa50f27c2f /lib
parent44f089508b7b3077cad846d2f198013b089dedf0 (diff)
downloadspack-11b62114bb69add79e5a86232562b24e42171717.tar.gz
spack-11b62114bb69add79e5a86232562b24e42171717.tar.bz2
spack-11b62114bb69add79e5a86232562b24e42171717.tar.xz
spack-11b62114bb69add79e5a86232562b24e42171717.zip
versioning the database
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/database.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/spack/spack/database.py b/lib/spack/spack/database.py
index 089d29325e..5941e1570f 100644
--- a/lib/spack/spack/database.py
+++ b/lib/spack/spack/database.py
@@ -60,7 +60,7 @@ from spack.repository import UnknownPackageError
_db_dirname = '.spack-db'
# DB version. This is stuck in the DB file to track changes in format.
-_db_version = Version('0.9')
+_db_version = Version('0.9.1')
# Default timeout for spack database locks is 5 min.
_db_lock_timeout = 60
@@ -250,8 +250,10 @@ class Database(object):
# TODO: better version checking semantics.
version = Version(db['version'])
- if version != _db_version:
+ if version > _db_version:
raise InvalidDatabaseVersionError(_db_version, version)
+ elif version < _db_version:
+ self.reindex(spack.install_layout)
# Iterate through database and check each record.
installs = db['installs']
@@ -343,6 +345,7 @@ class Database(object):
temp_file = self._index_path + (
'.%s.%s.temp' % (socket.getfqdn(), os.getpid()))
+
# Write a temporary database file them move it into place
try:
with open(temp_file, 'w') as f: