From 1db66e703271c8dea711b8428bc424d0d46b04b6 Mon Sep 17 00:00:00 2001 From: Andrey Zhavoronkov Date: Tue, 26 Oct 2021 14:22:04 +0300 Subject: [PATCH] Fixed dataset_repo migration (#3827) --- CHANGELOG.md | 1 + .../dataset_repo/migrations/0006_gitdata_format.py | 14 ++++++++++---- cvat/apps/dataset_repo/models.py | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19a1c70a..7015908c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Incorrect work when copy job list with "Copy" button () - Iterating over manifest () - Manifest removing () +- Migration of `dataset_repo` application () ### Security diff --git a/cvat/apps/dataset_repo/migrations/0006_gitdata_format.py b/cvat/apps/dataset_repo/migrations/0006_gitdata_format.py index 350810f7..641d2467 100644 --- a/cvat/apps/dataset_repo/migrations/0006_gitdata_format.py +++ b/cvat/apps/dataset_repo/migrations/0006_gitdata_format.py @@ -1,19 +1,25 @@ -# Generated by Django 2.1.3 on 2019-02-05 17:08 +# Generated by Django 3.1.13 on 2021-10-26 10:10 from django.db import migrations, models +def update_default_format_field(apps, schema_editor): + GitData = apps.get_model('dataset_repo', 'GitData') + for git_data in GitData.objects.all(): + if not git_data.format: + git_data.format = 'CVAT for images 1.1' if git_data.task.mode == 'annotation' else 'CVAT for video 1.1' + git_data.save() class Migration(migrations.Migration): + dependencies = [ ('dataset_repo', '0005_auto_20201019_1100'), ] - replaces = [('git', '0006_gitdata_format')] - operations = [ migrations.AddField( model_name='gitdata', name='format', - field=models.CharField(max_length=256) + field=models.CharField(blank=True, max_length=256), ), + migrations.RunPython(update_default_format_field), ] diff --git a/cvat/apps/dataset_repo/models.py b/cvat/apps/dataset_repo/models.py index 0249fdc8..08092c9c 100644 --- a/cvat/apps/dataset_repo/models.py +++ b/cvat/apps/dataset_repo/models.py @@ -20,7 +20,7 @@ class GitData(models.Model): task = models.OneToOneField(Task, on_delete = models.CASCADE, primary_key = True) url = models.URLField(max_length = 2000) path = models.CharField(max_length=256) - format = models.CharField(max_length=256) + format = models.CharField(max_length=256, blank=True) sync_date = models.DateTimeField(auto_now_add=True) status = models.CharField(max_length=20, default=GitStatusChoice.NON_SYNCED) lfs = models.BooleanField(default=True)