diff --git a/openupgrade_scripts/scripts/stock_account/19.0.1.1/end-migration.py b/openupgrade_scripts/scripts/stock_account/19.0.1.1/end-migration.py index 52f1ce0de916..639ea2420fdf 100644 --- a/openupgrade_scripts/scripts/stock_account/19.0.1.1/end-migration.py +++ b/openupgrade_scripts/scripts/stock_account/19.0.1.1/end-migration.py @@ -47,12 +47,15 @@ def ref_or_id(ref_or_id, model_name, AccountChartTemplate=AccountChartTemplate): for model_name, field_names in spec.items(): filtered_records = {} for record_id, record_data in template_data[model_name].items(): - if not any(record_data.get(key) for key in field_names): + record = ref_or_id(record_id, model_name) + if not record or not any(record_data.get(key) for key in field_names): + # record doesn't exist yet in this company's chart; + # don't partially-create it here, only backfill existing ones continue filtered = { key: value for key, value in record_data.items() - if key in field_names and not ref_or_id(record_id, model_name)[key] + if key in field_names and not record[key] } if filtered: filtered_records[record_id] = filtered