From 79ce26449b2fd5667d606fc8d866ceaf4467baad Mon Sep 17 00:00:00 2001 From: Jake Wagoner Date: Fri, 12 Apr 2024 17:36:56 -0600 Subject: [PATCH] Migration fixes (#367) * fix(ansible): split conda setup commands into 3 steps * Fix migration mismatch * fix: make miniconda executable --------- Co-authored-by: Anne Haley --- ..._phase_2_3.py => 0039_deepssm_phase2_3.py} | 8 +- .../migrations/0040_deepssm_ui_updates.py | 123 ++++++++++++++++++ shapeworks_cloud/core/models.py | 42 +++--- 3 files changed, 147 insertions(+), 26 deletions(-) rename shapeworks_cloud/core/migrations/{0039_deepssm_phase_2_3.py => 0039_deepssm_phase2_3.py} (94%) create mode 100644 shapeworks_cloud/core/migrations/0040_deepssm_ui_updates.py diff --git a/shapeworks_cloud/core/migrations/0039_deepssm_phase_2_3.py b/shapeworks_cloud/core/migrations/0039_deepssm_phase2_3.py similarity index 94% rename from shapeworks_cloud/core/migrations/0039_deepssm_phase_2_3.py rename to shapeworks_cloud/core/migrations/0039_deepssm_phase2_3.py index c7800c9d..da3060d6 100644 --- a/shapeworks_cloud/core/migrations/0039_deepssm_phase_2_3.py +++ b/shapeworks_cloud/core/migrations/0039_deepssm_phase2_3.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.25 on 2024-04-11 16:23 +# Generated by Django 3.2.25 on 2024-04-08 18:19 from django.db import migrations, models import django.db.models.deletion @@ -23,7 +23,7 @@ class Migration(migrations.Migration): ), ('particles', s3_file_field.fields.S3FileField()), ('scalar', s3_file_field.fields.S3FileField()), - ('mesh', s3_file_field.fields.S3FileField()), + ('vtk', s3_file_field.fields.S3FileField()), ('index', models.CharField(max_length=255)), ('example_type', models.CharField(max_length=255)), ('validation', models.BooleanField(default=False)), @@ -47,7 +47,6 @@ class Migration(migrations.Migration): ), ), ('image', s3_file_field.fields.S3FileField()), - ('index', models.CharField(max_length=255)), ('validation', models.BooleanField(default=False)), ( 'project', @@ -69,7 +68,7 @@ class Migration(migrations.Migration): ), ), ('image_type', models.CharField(max_length=255)), - ('image_id', models.CharField(max_length=255)), + ('image_id', models.IntegerField()), ('mesh', s3_file_field.fields.S3FileField()), ('particles', s3_file_field.fields.S3FileField()), ( @@ -117,7 +116,6 @@ class Migration(migrations.Migration): ), ), ('sample_num', models.IntegerField()), - ('image', s3_file_field.fields.S3FileField()), ('mesh', s3_file_field.fields.S3FileField()), ('particles', s3_file_field.fields.S3FileField()), ( diff --git a/shapeworks_cloud/core/migrations/0040_deepssm_ui_updates.py b/shapeworks_cloud/core/migrations/0040_deepssm_ui_updates.py new file mode 100644 index 00000000..93349316 --- /dev/null +++ b/shapeworks_cloud/core/migrations/0040_deepssm_ui_updates.py @@ -0,0 +1,123 @@ +# Generated by Django 3.2.25 on 2024-04-12 23:05 + +from django.db import migrations, models +import s3_file_field.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0039_deepssm_phase2_3'), + ] + + operations = [ + migrations.RemoveField( + model_name='deepssmtrainingpair', + name='vtk', + ), + migrations.AddField( + model_name='deepssmaugpair', + name='image', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AddField( + model_name='deepssmtrainingimage', + name='index', + field=models.CharField(default='', max_length=255), + ), + migrations.AddField( + model_name='deepssmtrainingpair', + name='mesh', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmaugpair', + name='mesh', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmaugpair', + name='particles', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmaugpair', + name='sample_num', + field=models.IntegerField(null=True), + ), + migrations.AlterField( + model_name='deepssmresult', + name='aug_total_data', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmresult', + name='aug_visualization', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmresult', + name='testing_distances', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmresult', + name='training_data_table', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmresult', + name='training_visualization', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmresult', + name='training_visualization_ft', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmtestingdata', + name='image_id', + field=models.CharField(default='', max_length=255), + ), + migrations.AlterField( + model_name='deepssmtestingdata', + name='image_type', + field=models.CharField(default='', max_length=255), + ), + migrations.AlterField( + model_name='deepssmtestingdata', + name='mesh', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmtestingdata', + name='particles', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmtrainingimage', + name='image', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmtrainingpair', + name='example_type', + field=models.CharField(default='', max_length=255), + ), + migrations.AlterField( + model_name='deepssmtrainingpair', + name='index', + field=models.CharField(default='', max_length=255), + ), + migrations.AlterField( + model_name='deepssmtrainingpair', + name='particles', + field=s3_file_field.fields.S3FileField(null=True), + ), + migrations.AlterField( + model_name='deepssmtrainingpair', + name='scalar', + field=s3_file_field.fields.S3FileField(null=True), + ), + ] diff --git a/shapeworks_cloud/core/models.py b/shapeworks_cloud/core/models.py index 20bfcb6b..de6d0532 100644 --- a/shapeworks_cloud/core/models.py +++ b/shapeworks_cloud/core/models.py @@ -200,21 +200,21 @@ class DeepSSMTestingData(models.Model): project = models.ForeignKey( Project, on_delete=models.CASCADE, related_name='deepssm_testing_data' ) - image_type = models.CharField(max_length=255) - image_id = models.CharField(max_length=255) - mesh = S3FileField() - particles = S3FileField() + image_type = models.CharField(max_length=255, default='') + image_id = models.CharField(max_length=255, default='') + mesh = S3FileField(null=True) + particles = S3FileField(null=True) class DeepSSMTrainingPair(models.Model): project = models.ForeignKey( Project, on_delete=models.CASCADE, related_name='deepssm_training_pair' ) - particles = S3FileField() # .particles - scalar = S3FileField() # .scalar - mesh = S3FileField() # .vtk - index = models.CharField(max_length=255) # index - example_type = models.CharField(max_length=255) # best, median, worst + particles = S3FileField(null=True) # .particles + scalar = S3FileField(null=True) # .scalar + mesh = S3FileField(null=True) # .vtk + index = models.CharField(max_length=255, default='') # index + example_type = models.CharField(max_length=255, default='') # best, median, worst validation = models.BooleanField(default=False) @@ -222,27 +222,27 @@ class DeepSSMTrainingImage(models.Model): project = models.ForeignKey( Project, on_delete=models.CASCADE, related_name='deepssm_training_images' ) - image = S3FileField() - index = models.CharField(max_length=255) # index + image = S3FileField(null=True) + index = models.CharField(max_length=255, default='') # index validation = models.BooleanField(default=False) class DeepSSMAugPair(models.Model): project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name='deepssm_aug_pair') - sample_num = models.IntegerField() - image = S3FileField() - mesh = S3FileField() - particles = S3FileField() + sample_num = models.IntegerField(null=True) + image = S3FileField(null=True) + mesh = S3FileField(null=True) + particles = S3FileField(null=True) class DeepSSMResult(models.Model): project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name='deepssm_results') - aug_visualization = S3FileField() # .png - aug_total_data = S3FileField() # .csv - training_visualization = S3FileField() # .png - training_visualization_ft = S3FileField() # .png - training_data_table = S3FileField() # .csv - testing_distances = S3FileField() # .csv + aug_visualization = S3FileField(null=True) # .png + aug_total_data = S3FileField(null=True) # .csv + training_visualization = S3FileField(null=True) # .png + training_visualization_ft = S3FileField(null=True) # .png + training_data_table = S3FileField(null=True) # .csv + testing_distances = S3FileField(null=True) # .csv class GroomedSegmentation(TimeStampedModel, models.Model):