From eec2c536bb6e72aca9f1f70486f87cfe4caeef82 Mon Sep 17 00:00:00 2001 From: Dan LaManna Date: Tue, 1 Aug 2023 12:50:00 -0400 Subject: [PATCH] Use raw SQL migration to improve performance --- .../migrations/0038_migrate_copyright_license.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/isic/ingest/migrations/0038_migrate_copyright_license.py b/isic/ingest/migrations/0038_migrate_copyright_license.py index ccb0f830..ecf77ee6 100644 --- a/isic/ingest/migrations/0038_migrate_copyright_license.py +++ b/isic/ingest/migrations/0038_migrate_copyright_license.py @@ -1,18 +1,13 @@ # Generated by Django 4.1.10 on 2023-07-31 22:25 -from django.db import migrations +from django.db import connection, migrations def migrate_default_copyright_license(apps, schema_editor): - Accession = apps.get_model("ingest", "Accession") - - objs = [] - for accession in ( - Accession.objects.select_related("cohort").filter(copyright_license=None).iterator() - ): - accession.copyright_license = accession.cohort.default_copyright_license - objs.append(accession) - Accession.objects.bulk_update(objs, ["copyright_license"], batch_size=1_000) + with connection.cursor() as cursor: + cursor.execute( + "update ingest_accession set copyright_license = ingest_cohort.default_copyright_license from ingest_cohort where ingest_accession.cohort_id = ingest_cohort.id" # noqa: E501 + ) class Migration(migrations.Migration):