From 7b19de557539d3f6cc42229eccd17898a679def9 Mon Sep 17 00:00:00 2001 From: Tomas Machalek Date: Mon, 20 Nov 2023 11:49:55 +0100 Subject: [PATCH] Handle legacy/removed corpora names when transfering deprec. settings --- lib/plugins/mysql_settings_storage/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/plugins/mysql_settings_storage/__init__.py b/lib/plugins/mysql_settings_storage/__init__.py index 632633d773..1f56ecae27 100644 --- a/lib/plugins/mysql_settings_storage/__init__.py +++ b/lib/plugins/mysql_settings_storage/__init__.py @@ -18,10 +18,11 @@ import logging from collections import defaultdict -from typing import Any, Dict, List, Optional +from typing import Dict, List, Optional import plugins import ujson as json +from pymysql.err import IntegrityError from plugin_types.common import Serializable from plugin_types.settings_storage import AbstractSettingsStorage from plugins import inject @@ -72,7 +73,11 @@ async def _upgrade_general_settings(self, data: Dict[str, Serializable], user_id gen[k] = v for corp, data in corp_set.items(): - await self.save(user_id, corp, data) + try: + await self.save(user_id, corp, data) + except IntegrityError: + logging.getLogger(__name__).warning( + f'Failed to transfer legacy format settings for corpus {corp}. Throwing the setting away.') if len(gen) < len(data): logging.getLogger(__name__).warning(