From f5473fe3d276b5f30c90d915ed1230dcaedd871b Mon Sep 17 00:00:00 2001 From: Dan LaManna Date: Thu, 15 May 2025 13:29:58 -0400 Subject: [PATCH] Require metadata file have a non-empty blob --- .../0023_metadatafile_blob_not_empty.py | 20 +++++++++++++++++++ isic/ingest/models/metadata_file.py | 3 +++ 2 files changed, 23 insertions(+) create mode 100644 isic/ingest/migrations/0023_metadatafile_blob_not_empty.py diff --git a/isic/ingest/migrations/0023_metadatafile_blob_not_empty.py b/isic/ingest/migrations/0023_metadatafile_blob_not_empty.py new file mode 100644 index 000000000..37818a7ed --- /dev/null +++ b/isic/ingest/migrations/0023_metadatafile_blob_not_empty.py @@ -0,0 +1,20 @@ +# Generated by Django 5.1.8 on 2025-05-15 17:29 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("ingest", "0022_accession_ingest_acce_image_m_aee960_idx"), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddConstraint( + model_name="metadatafile", + constraint=models.CheckConstraint( + condition=models.Q(("blob", ""), _negated=True), name="blob_not_empty" + ), + ), + ] diff --git a/isic/ingest/models/metadata_file.py b/isic/ingest/models/metadata_file.py index a4fb51db7..44adccbe3 100644 --- a/isic/ingest/models/metadata_file.py +++ b/isic/ingest/models/metadata_file.py @@ -23,6 +23,9 @@ class MetadataFile(CreationSortedTimeStampedModel): validation_errors = models.TextField(blank=True) validation_completed = models.BooleanField(default=False) + class Meta(CreationSortedTimeStampedModel.Meta): + constraints = [models.CheckConstraint(check=~models.Q(blob=""), name="blob_not_empty")] + def __str__(self) -> str: return self.blob_name