# Generated by Django 6.0.3 on 2026-06-02 17:18 from django.db import migrations from envipy_additional_information import DOI def forward_func(apps, schema_editor): AdditionalInformation = apps.get_model("epdb", "AdditionalInformation") refs = AdditionalInformation.objects.filter(type="Reference") remaining = [] for ref in refs: r = ref.data["reference"] try: # PubMed IDs are plain ints, try parsing _ = int(r) # Nothing to do except ValueError: DOMAINS = [ "http://dx.doi.org/", "https://dx.doi.org/", "http://doi.org/", "https://doi.org/", ] for d in DOMAINS: r = r.replace(d, "") if r.startswith("10."): ref.type = DOI.__name__ ref.data = {"doi": r} ref.save() else: remaining.append(ref) if len(remaining) > 0: raise ValueError(f"Could not parse {len(remaining)} references") class Migration(migrations.Migration): dependencies = [ ("epdb", "0025_auto_20260511_2025"), ] operations = [ migrations.RunPython(forward_func, reverse_code=migrations.RunPython.noop), ]