From 040bbab541fc717a56c9c3e33dc9e534c4b53140 Mon Sep 17 00:00:00 2001 From: Anikesh Suresh Date: Thu, 17 Oct 2024 12:31:41 +0000 Subject: [PATCH] fixed migration script #338 --- .../scripts/expected_lifetime_migration.py | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/inventory_management_system_api/migrations/scripts/expected_lifetime_migration.py b/inventory_management_system_api/migrations/scripts/expected_lifetime_migration.py index cf312254..4cb9a5e5 100644 --- a/inventory_management_system_api/migrations/scripts/expected_lifetime_migration.py +++ b/inventory_management_system_api/migrations/scripts/expected_lifetime_migration.py @@ -41,7 +41,6 @@ class NewCatalogueItemBase(BaseModel): notes: Optional[str] = None properties: List[PropertyIn] = [] - # pylint: disable=duplicate-code @field_validator("properties", mode="before") @classmethod def validate_properties(cls, properties: Any) -> Any: @@ -57,8 +56,6 @@ def validate_properties(cls, properties: Any) -> Any: properties = [] return properties - # pylint: enable=duplicate-code - @field_serializer("drawing_link") def serialize_url(self, url: HttpUrl): """ @@ -97,7 +94,6 @@ class OldCatalogueItemBase(BaseModel): notes: Optional[str] = None properties: List[PropertyIn] = [] - # pylint: disable=duplicate-code @field_validator("properties", mode="before") @classmethod def validate_properties(cls, properties: Any) -> Any: @@ -113,8 +109,6 @@ def validate_properties(cls, properties: Any) -> Any: properties = [] return properties - # pylint: enable=duplicate-code - @field_serializer("drawing_link") def serialize_url(self, url: HttpUrl): """ @@ -161,16 +155,25 @@ def forward(self, session: ClientSession): logger.info("expected_lifetime forward migration") for catalogue_item in catalogue_items: try: - old_catalogue_item = OldCatalogueItemOut(**catalogue_item.model_dump()) + old_catalogue_item = OldCatalogueItemOut(**catalogue_item) new_catalogue_item = NewCatalogueItemIn(**old_catalogue_item.model_dump()) - update_data = {**new_catalogue_item.model_dump(), "modified_time": old_catalogue_item.modified_time} + logger.info(new_catalogue_item.model_dump()) - self._catalogue_items_collection.update_one( - {"_id": old_catalogue_item.id}, {"$set": update_data}, session=session + update_data = { + **new_catalogue_item.model_dump(), + "modified_time": old_catalogue_item.modified_time, + } + + result = self._catalogue_items_collection.replace_one( + {"_id": catalogue_item["_id"]}, + update_data, + session=session, ) + logger.info(result) + except ValidationError as ve: logger.error("Validation failed for item with id %s: %s", catalogue_item["_id"], ve)