diff --git a/src/backend/InvenTree/build/migrations/0049_alter_builditem_build_line.py b/src/backend/InvenTree/build/migrations/0049_alter_builditem_build_line.py new file mode 100644 index 000000000000..0f4a4796a94c --- /dev/null +++ b/src/backend/InvenTree/build/migrations/0049_alter_builditem_build_line.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.12 on 2024-05-08 01:38 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('build', '0048_build_project_code'), + ] + + operations = [ + migrations.AlterField( + model_name='builditem', + name='build_line', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='allocations', to='build.buildline'), + ), + ] diff --git a/src/backend/InvenTree/build/migrations/0050_auto_20240508_0138.py b/src/backend/InvenTree/build/migrations/0050_auto_20240508_0138.py new file mode 100644 index 000000000000..11e2ef82eff7 --- /dev/null +++ b/src/backend/InvenTree/build/migrations/0050_auto_20240508_0138.py @@ -0,0 +1,26 @@ +# Generated by Django 4.2.12 on 2024-05-08 01:38 + +from django.db import migrations + + +def forward(apps, schema_editor): + """Find and delete any BuildItem instances which have a null BuildLine field.""" + + BuildItem = apps.get_model('build', 'BuildItem') + + items = BuildItem.objects.filter(build_line=None) + + if items.count() > 0: + print(f"Deleting {items.count()} BuildItem objects with null BuildLine field") + items.delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ('build', '0049_alter_builditem_build_line'), + ] + + operations = [ + migrations.RunPython(forward, reverse_code=migrations.RunPython.noop), + ] diff --git a/src/backend/InvenTree/build/models.py b/src/backend/InvenTree/build/models.py index f4786e9fbfc9..bf878a91bfe9 100644 --- a/src/backend/InvenTree/build/models.py +++ b/src/backend/InvenTree/build/models.py @@ -1569,7 +1569,7 @@ def complete_allocation(self, user, notes=''): build_line = models.ForeignKey( BuildLine, - on_delete=models.SET_NULL, null=True, + on_delete=models.CASCADE, null=True, related_name='allocations', )