browsertrix/backend/btrixcloud/migrations/migration_0019_org_slug.py
2024-02-07 11:35:34 -08:00

35 lines
999 B
Python

"""
Migration 0019 - Organization slug
"""
from btrixcloud.migrations import BaseMigration
from btrixcloud.utils import slug_from_name
MIGRATION_VERSION = "0019"
class Migration(BaseMigration):
"""Migration class."""
def __init__(self, mdb, migration_version=MIGRATION_VERSION):
super().__init__(mdb, migration_version)
async def migrate_up(self):
"""Perform migration up.
Add slug to all existing orgs.
"""
# pylint: disable=duplicate-code
mdb_orgs = self.mdb["organizations"]
async for org in mdb_orgs.find({"slug": {"$eq": None}}):
oid = org["_id"]
slug = slug_from_name(org["name"])
try:
await mdb_orgs.find_one_and_update(
{"_id": oid}, {"$set": {"slug": slug}}
)
# pylint: disable=broad-exception-caught
except Exception as err:
print(f"Error adding slug to org {oid}: {err}", flush=True)