From 2025916a1c4d4518e714086e2144be0e83c95d9e Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 19 Aug 2016 14:31:52 -0300 Subject: [pkg] ignore existing correct gen docs in couch schema migrate script --- scripts/migration/0.8.2/migrate_couch_schema/__init__.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/migration/0.8.2/migrate_couch_schema/__init__.py b/scripts/migration/0.8.2/migrate_couch_schema/__init__.py index 66ae960b..c3eb9c3d 100644 --- a/scripts/migration/0.8.2/migrate_couch_schema/__init__.py +++ b/scripts/migration/0.8.2/migrate_couch_schema/__init__.py @@ -7,6 +7,7 @@ import logging from couchdb import Server from couchdb import ResourceNotFound +from couchdb import ResourceConflict from leap.soledad.common.couch import GENERATION_KEY from leap.soledad.common.couch import TRANSACTION_ID_KEY @@ -100,7 +101,15 @@ def _migrate_transaction_log(db, do_migrate): } logger.info('creating gen doc: %s' % (gen_doc_id)) if do_migrate: - db.save(doc) + try: + db.save(doc) + except ResourceConflict: + # this gen document already exists. if documents are the same, + # continue with migration. + existing_doc = db.get(gen_doc_id) + for key in [GENERATION_KEY, DOC_ID_KEY, TRANSACTION_ID_KEY]: + if existing_doc[key] != doc[key]: + raise def _migrate_config_doc(db, do_migrate): -- cgit v1.2.3