diff options
author | Marko Kreen | 2011-11-29 13:08:37 +0000 |
---|---|---|
committer | Marko Kreen | 2011-11-29 13:08:37 +0000 |
commit | ca418c8e3a04b409c264d77045746e67707ff992 (patch) | |
tree | c5db8eb5c221f3dafe8671f5326044db1626ff4b /scripts/skytools_upgrade.py | |
parent | a4b5aa491a6520a958bbcf77092099287747bd35 (diff) |
skytools_upgrade: if schema too old, stop touching it
Diffstat (limited to 'scripts/skytools_upgrade.py')
-rwxr-xr-x | scripts/skytools_upgrade.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/scripts/skytools_upgrade.py b/scripts/skytools_upgrade.py index 389f6677..37aa779c 100755 --- a/scripts/skytools_upgrade.py +++ b/scripts/skytools_upgrade.py @@ -25,6 +25,7 @@ DB_LIST = "select datname from pg_database "\ # dont support upgrade from 2.x (yet?) version_list = [ + # schema, ver, filename, recheck_func ['pgq', '3.0', None, None], ['londiste', '3.0', None, None], ] @@ -57,15 +58,23 @@ class DbUpgrade(skytools.DBScript): """Upgrade all schemas in single db.""" curs = db.cursor() - for schema, ver, fn, recheck_fn in version_list: + ignore = {} + for schema, ver, fn, recheck_func in version_list: + # skip schema? + if schema in ignore: + continue if not skytools.exists_schema(curs, schema): + ignore[schema] = 1 continue - if check_version(curs, schema, ver, recheck_fn): + # new enough? + if check_version(curs, schema, ver, recheck_func): continue + # too old schema, no way to upgrade if fn is None: self.log.info('%s: Cannot upgrade %s, too old version', dbname, schema) + ignore[schema] = 1 continue curs = db.cursor() |