fix: migration; make it resilient against old, non-conforming data

This commit is contained in:
David
2024-12-06 17:52:54 +01:00
parent 93e9517f5d
commit 14a57795d5

View File

@@ -26,7 +26,17 @@ def execute():
updated_tax_details = {} updated_tax_details = {}
needs_update = False needs_update = False
for item, tax_data in json.loads(doc.item_wise_tax_detail).items(): try:
item_iterator = json.loads(doc.item_wise_tax_detail).items()
except AttributeError as e:
# This is stale data from 2009 found in a database
if json.loads(doc.item_wise_tax_detail) == 1:
# meaning: replace with an empty {}
needs_update = True
else:
raise e
else:
for item, tax_data in item_iterator:
if isinstance(tax_data, list) and len(tax_data) == 2: if isinstance(tax_data, list) and len(tax_data) == 2:
updated_tax_details[item] = ItemWiseTaxDetail( updated_tax_details[item] = ItemWiseTaxDetail(
tax_rate=tax_data[0], tax_rate=tax_data[0],