From 18e5ed94f174a010d73372d2938279dc5cac61f9 Mon Sep 17 00:00:00 2001 From: Tessa Walsh Date: Wed, 29 May 2024 15:56:27 -0400 Subject: [PATCH] Add migration to set profile modified date (#1832) If modified field doesn't exist on older browser profiles, set it equal to created date to match what we do for new profile creation. --- backend/btrixcloud/db.py | 2 +- .../migration_0027_profile_modified.py | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 backend/btrixcloud/migrations/migration_0027_profile_modified.py diff --git a/backend/btrixcloud/db.py b/backend/btrixcloud/db.py index 2a13aa92..c874bebf 100644 --- a/backend/btrixcloud/db.py +++ b/backend/btrixcloud/db.py @@ -17,7 +17,7 @@ from pymongo.errors import InvalidName from .migrations import BaseMigration -CURR_DB_VERSION = "0026" +CURR_DB_VERSION = "0027" # ============================================================================ diff --git a/backend/btrixcloud/migrations/migration_0027_profile_modified.py b/backend/btrixcloud/migrations/migration_0027_profile_modified.py new file mode 100644 index 00000000..ddc48eea --- /dev/null +++ b/backend/btrixcloud/migrations/migration_0027_profile_modified.py @@ -0,0 +1,34 @@ +""" +Migration 0027 - Profile modified date fallback +""" + +from btrixcloud.migrations import BaseMigration + + +MIGRATION_VERSION = "0027" + + +class Migration(BaseMigration): + """Migration class.""" + + # pylint: disable=unused-argument + def __init__(self, mdb, **kwargs): + super().__init__(mdb, migration_version=MIGRATION_VERSION) + + async def migrate_up(self): + """Perform migration up. + + If profile doesn't have modified date, set to created + """ + # pylint: disable=duplicate-code + profiles = self.mdb["profiles"] + try: + await profiles.update_many( + {"modified": None}, [{"$set": {"modified": "$created"}}] + ) + # pylint: disable=broad-exception-caught + except Exception as err: + print( + f"Error adding modified date to profiles: {err}", + flush=True, + )