browsertrix/backend/btrixcloud/migrations/migration_0002_crawlconfig_crawlstats.py
Tessa Walsh e2f359c352
CrawlConfig migration and crawl stats query optimization (#633)
* Drop crawl stats fields from CrawlConfig and add migration

* Remove migrate_down from BaseMigration

* Get crawl stats from optimized mongo query
2023-02-24 18:01:15 -08:00

28 lines
920 B
Python

"""
Migration 0002 - Dropping CrawlConfig crawl stats
"""
from btrixcloud.migrations import BaseMigration
MIGRATION_VERSION = "0002"
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.
Drop crawl statistics fields from crawl_config collection documents
as these are now generated dynamically from a join as needed in API
endpoints.
"""
crawl_configs = self.mdb["crawl_configs"]
await crawl_configs.update_many({}, {"$unset": {"crawlCount": 1}})
await crawl_configs.update_many({}, {"$unset": {"lastCrawlId": 1}})
await crawl_configs.update_many({}, {"$unset": {"lastCrawlTime": 1}})
await crawl_configs.update_many({}, {"$unset": {"lastCrawlState": 1}})