From: Andy Doan Date: Wed, 25 Jan 2017 20:17:29 +0000 (-0600) Subject: Fix series.project migration logic X-Git-Tag: v2.0.0-rc1~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1d8a0d6eabad25525d1b6925e81b80030773869;p=thirdparty%2Fpatchwork.git Fix series.project migration logic The migration logic seems slightly off for 2 reasons: 1) If you already have series objects in your database, then adding a non-nullable foreign key to projects will fail. 2) This may just be a remnant of my development database, but I had series entries with no patches. I think part #1 is *required*. I'm not totally sure about #2, but it seems safe. Signed-off-by: Andy Doan Reviewed-by: Stephen Finucane --- diff --git a/patchwork/migrations/0016_series_project.py b/patchwork/migrations/0016_series_project.py index befd6953..c4874f97 100644 --- a/patchwork/migrations/0016_series_project.py +++ b/patchwork/migrations/0016_series_project.py @@ -16,8 +16,10 @@ def forward(apps, schema_editor): series.project = series.cover_letter.project series.save() elif series.patches: - series.project = series.patches.first().project - series.save() + patch = series.patches.first() + if patch: + series.project = patch.project + series.save() else: # a series without patches or cover letters should not exist. # Delete it. @@ -38,7 +40,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='series', name='project', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='series', to='patchwork.Project'), + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='series', to='patchwork.Project'), ), migrations.RunPython(forward, reverse), migrations.AlterField(