summaryrefslogtreecommitdiff
path: root/scripts/skytools_upgrade.py
diff options
context:
space:
mode:
authorMarko Kreen2011-11-29 13:08:37 +0000
committerMarko Kreen2011-11-29 13:08:37 +0000
commitca418c8e3a04b409c264d77045746e67707ff992 (patch)
treec5db8eb5c221f3dafe8671f5326044db1626ff4b /scripts/skytools_upgrade.py
parenta4b5aa491a6520a958bbcf77092099287747bd35 (diff)
skytools_upgrade: if schema too old, stop touching it
Diffstat (limited to 'scripts/skytools_upgrade.py')
-rwxr-xr-xscripts/skytools_upgrade.py13
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()