From 9fcf4126bbc4234c644b84863f6be49e29dfc746 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 29 Sep 2023 15:18:05 +0530 Subject: [PATCH 1/5] chore: epoch migration batch size changed --- apiserver/plane/db/migrations/0046_auto_20230926_1015.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apiserver/plane/db/migrations/0046_auto_20230926_1015.py b/apiserver/plane/db/migrations/0046_auto_20230926_1015.py index 8bce37d9534..a86d973888c 100644 --- a/apiserver/plane/db/migrations/0046_auto_20230926_1015.py +++ b/apiserver/plane/db/migrations/0046_auto_20230926_1015.py @@ -12,7 +12,7 @@ def update_issue_activity(apps, schema_editor): IssueActivity.objects.bulk_update( updated_issue_activity, ["epoch"], - batch_size=5000, + batch_size=10000, ) class Migration(migrations.Migration): From 3f7f908788401686316add22ce0ae3b230c47ebf Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 29 Sep 2023 15:30:08 +0530 Subject: [PATCH 2/5] chore: reoredered the migration files --- .../db/migrations/0045_auto_20230915_0655.py | 2 +- .../db/migrations/0046_auto_20230926_1015.py | 45 +++++++++++++++---- .../db/migrations/0047_auto_20230926_1029.py | 44 ------------------ ...er_workspacemember_issue_props_and_more.py | 24 ---------- 4 files changed, 38 insertions(+), 77 deletions(-) delete mode 100644 apiserver/plane/db/migrations/0047_auto_20230926_1029.py delete mode 100644 apiserver/plane/db/migrations/0048_globalview_sort_order_workspacemember_issue_props_and_more.py diff --git a/apiserver/plane/db/migrations/0045_auto_20230915_0655.py b/apiserver/plane/db/migrations/0045_auto_20230915_0655.py index cd9aa690220..7b024c1740d 100644 --- a/apiserver/plane/db/migrations/0045_auto_20230915_0655.py +++ b/apiserver/plane/db/migrations/0045_auto_20230915_0655.py @@ -38,5 +38,5 @@ class Migration(migrations.Migration): model_name="issueactivity", name="epoch", field=models.FloatField(null=True), - ), + ), ] diff --git a/apiserver/plane/db/migrations/0046_auto_20230926_1015.py b/apiserver/plane/db/migrations/0046_auto_20230926_1015.py index a86d973888c..0d85d2c88a6 100644 --- a/apiserver/plane/db/migrations/0046_auto_20230926_1015.py +++ b/apiserver/plane/db/migrations/0046_auto_20230926_1015.py @@ -1,20 +1,38 @@ -# Generated by Django 4.2.5 on 2023-09-26 10:15 +# Generated by Django 4.2.5 on 2023-09-26 10:29 -from django.db import migrations +from django.db import migrations, models +import plane.db.models.workspace -def update_issue_activity(apps, schema_editor): +def update_issue_activity_priority(apps, schema_editor): IssueActivity = apps.get_model("db", "IssueActivity") updated_issue_activity = [] - for obj in IssueActivity.objects.all(): - obj.epoch = int(obj.created_at.timestamp()) + for obj in IssueActivity.objects.filter(field="priority"): + # Set the old and new value to none if it is empty for Priority + obj.new_value = obj.new_value or "none" + obj.old_value = obj.old_value or "none" updated_issue_activity.append(obj) IssueActivity.objects.bulk_update( updated_issue_activity, - ["epoch"], - batch_size=10000, + ["new_value", "old_value"], + batch_size=1000, ) +def update_issue_activity_blocked(apps, schema_editor): + IssueActivity = apps.get_model("db", "IssueActivity") + updated_issue_activity = [] + for obj in IssueActivity.objects.filter(field="blocks"): + # Set the field to blocked_by + obj.field = "blocked_by" + updated_issue_activity.append(obj) + IssueActivity.objects.bulk_update( + updated_issue_activity, + ["field"], + batch_size=1000, + ) + + + class Migration(migrations.Migration): dependencies = [ @@ -22,5 +40,16 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(update_issue_activity), + migrations.AddField( + model_name='globalview', + name='sort_order', + field=models.FloatField(default=65535), + ), + migrations.AddField( + model_name='workspacemember', + name='issue_props', + field=models.JSONField(default=plane.db.models.workspace.get_issue_props), + ), + migrations.RunPython(update_issue_activity_priority), + migrations.RunPython(update_issue_activity_blocked), ] diff --git a/apiserver/plane/db/migrations/0047_auto_20230926_1029.py b/apiserver/plane/db/migrations/0047_auto_20230926_1029.py deleted file mode 100644 index da64e11c84a..00000000000 --- a/apiserver/plane/db/migrations/0047_auto_20230926_1029.py +++ /dev/null @@ -1,44 +0,0 @@ -# Generated by Django 4.2.5 on 2023-09-26 10:29 - -from django.db import migrations - - -def update_issue_activity_priority(apps, schema_editor): - IssueActivity = apps.get_model("db", "IssueActivity") - updated_issue_activity = [] - for obj in IssueActivity.objects.filter(field="priority"): - # Set the old and new value to none if it is empty for Priority - obj.new_value = obj.new_value or "none" - obj.old_value = obj.old_value or "none" - updated_issue_activity.append(obj) - IssueActivity.objects.bulk_update( - updated_issue_activity, - ["new_value", "old_value"], - batch_size=1000, - ) - -def update_issue_activity_blocked(apps, schema_editor): - IssueActivity = apps.get_model("db", "IssueActivity") - updated_issue_activity = [] - for obj in IssueActivity.objects.filter(field="blocks"): - # Set the field to blocked_by - obj.field = "blocked_by" - updated_issue_activity.append(obj) - IssueActivity.objects.bulk_update( - updated_issue_activity, - ["field"], - batch_size=1000, - ) - - - -class Migration(migrations.Migration): - - dependencies = [ - ('db', '0046_auto_20230926_1015'), - ] - - operations = [ - migrations.RunPython(update_issue_activity_priority), - migrations.RunPython(update_issue_activity_blocked), - ] diff --git a/apiserver/plane/db/migrations/0048_globalview_sort_order_workspacemember_issue_props_and_more.py b/apiserver/plane/db/migrations/0048_globalview_sort_order_workspacemember_issue_props_and_more.py deleted file mode 100644 index 3084ef637e6..00000000000 --- a/apiserver/plane/db/migrations/0048_globalview_sort_order_workspacemember_issue_props_and_more.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 4.2.5 on 2023-09-27 11:18 - -from django.db import migrations, models -import plane.db.models.workspace - - -class Migration(migrations.Migration): - - dependencies = [ - ('db', '0047_auto_20230926_1029'), - ] - - operations = [ - migrations.AddField( - model_name='globalview', - name='sort_order', - field=models.FloatField(default=65535), - ), - migrations.AddField( - model_name='workspacemember', - name='issue_props', - field=models.JSONField(default=plane.db.models.workspace.get_issue_props), - ), - ] From 21fac0eb6fbb242b631c997fc1ae9a1aec2b968a Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 29 Sep 2023 15:47:47 +0530 Subject: [PATCH 3/5] dev: updated migrations for 0.13-dev --- ..._alter_analyticview_created_by_and_more.py | 5 +- .../db/migrations/0045_auto_20230915_0655.py | 42 ----------- ...ch_workspacemember_issue_props_and_more.py | 74 +++++++++++++++++++ .../db/migrations/0046_auto_20230926_1015.py | 55 -------------- 4 files changed, 76 insertions(+), 100 deletions(-) delete mode 100644 apiserver/plane/db/migrations/0045_auto_20230915_0655.py create mode 100644 apiserver/plane/db/migrations/0045_issueactivity_epoch_workspacemember_issue_props_and_more.py delete mode 100644 apiserver/plane/db/migrations/0046_auto_20230926_1015.py diff --git a/apiserver/plane/db/migrations/0043_alter_analyticview_created_by_and_more.py b/apiserver/plane/db/migrations/0043_alter_analyticview_created_by_and_more.py index 950189c5540..5a806c7046a 100644 --- a/apiserver/plane/db/migrations/0043_alter_analyticview_created_by_and_more.py +++ b/apiserver/plane/db/migrations/0043_alter_analyticview_created_by_and_more.py @@ -33,9 +33,8 @@ def create_issue_relation(apps, schema_editor): def update_issue_priority_choice(apps, schema_editor): IssueModel = apps.get_model("db", "Issue") updated_issues = [] - for obj in IssueModel.objects.all(): - if obj.priority is None: - obj.priority = "none" + for obj in IssueModel.objects.filter(priority=None): + obj.priority = "none" updated_issues.append(obj) IssueModel.objects.bulk_update(updated_issues, ["priority"], batch_size=100) diff --git a/apiserver/plane/db/migrations/0045_auto_20230915_0655.py b/apiserver/plane/db/migrations/0045_auto_20230915_0655.py deleted file mode 100644 index 7b024c1740d..00000000000 --- a/apiserver/plane/db/migrations/0045_auto_20230915_0655.py +++ /dev/null @@ -1,42 +0,0 @@ -# Generated by Django 4.2.3 on 2023-09-15 06:55 - -from django.db import migrations, models -from django.conf import settings -import django.db.models.deletion -import uuid - - -class Migration(migrations.Migration): - dependencies = [ - ("db", "0044_auto_20230913_0709"), - ] - - operations = [ - migrations.CreateModel( - name="GlobalView", - fields=[ - ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At"),), - ("updated_at", models.DateTimeField(auto_now=True, verbose_name="Last Modified At"),), - ("id", models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True,),), - ("name", models.CharField(max_length=255, verbose_name="View Name")), - ("description", models.TextField(blank=True, verbose_name="View Description"),), - ("query", models.JSONField(verbose_name="View Query")), - ("access", models.PositiveSmallIntegerField(choices=[(0, "Private"), (1, "Public")], default=1),), - ("query_data", models.JSONField(default=dict)), - ("created_by", models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="%(class)s_created_by", to=settings.AUTH_USER_MODEL, verbose_name="Created By",),), - ("updated_by", models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="%(class)s_updated_by", to=settings.AUTH_USER_MODEL, verbose_name="Last Modified By",),), - ("workspace", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="global_views", to="db.workspace",),), - ], - options={ - "verbose_name": "Global View", - "verbose_name_plural": "Global Views", - "db_table": "global_views", - "ordering": ("-created_at",), - }, - ), - migrations.AddField( - model_name="issueactivity", - name="epoch", - field=models.FloatField(null=True), - ), - ] diff --git a/apiserver/plane/db/migrations/0045_issueactivity_epoch_workspacemember_issue_props_and_more.py b/apiserver/plane/db/migrations/0045_issueactivity_epoch_workspacemember_issue_props_and_more.py new file mode 100644 index 00000000000..008254a5c90 --- /dev/null +++ b/apiserver/plane/db/migrations/0045_issueactivity_epoch_workspacemember_issue_props_and_more.py @@ -0,0 +1,74 @@ +# Generated by Django 4.2.5 on 2023-09-29 10:14 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import plane.db.models.workspace +import uuid + + +def update_issue_activity_priority(apps, schema_editor): + IssueActivity = apps.get_model("db", "IssueActivity") + updated_issue_activity = [] + for obj in IssueActivity.objects.filter(field="priority"): + # Set the old and new value to none if it is empty for Priority + obj.new_value = obj.new_value or "none" + obj.old_value = obj.old_value or "none" + updated_issue_activity.append(obj) + IssueActivity.objects.bulk_update( + updated_issue_activity, + ["new_value", "old_value"], + batch_size=2000, + ) + +def update_issue_activity_blocked(apps, schema_editor): + IssueActivity = apps.get_model("db", "IssueActivity") + updated_issue_activity = [] + for obj in IssueActivity.objects.filter(field="blocks"): + # Set the field to blocked_by + obj.field = "blocked_by" + updated_issue_activity.append(obj) + IssueActivity.objects.bulk_update( + updated_issue_activity, + ["field"], + batch_size=1000, + ) + +class Migration(migrations.Migration): + + dependencies = [ + ('db', '0044_auto_20230913_0709'), + ] + + operations = [ + migrations.CreateModel( + name='GlobalView', + fields=[ + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Last Modified At')), + ('id', models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)), + ('name', models.CharField(max_length=255, verbose_name='View Name')), + ('description', models.TextField(blank=True, verbose_name='View Description')), + ('query', models.JSONField(verbose_name='View Query')), + ('access', models.PositiveSmallIntegerField(choices=[(0, 'Private'), (1, 'Public')], default=1)), + ('query_data', models.JSONField(default=dict)), + ('sort_order', models.FloatField(default=65535)), + ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_created_by', to=settings.AUTH_USER_MODEL, verbose_name='Created By')), + ('updated_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_updated_by', to=settings.AUTH_USER_MODEL, verbose_name='Last Modified By')), + ('workspace', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='global_views', to='db.workspace')), + ], + options={ + 'verbose_name': 'Global View', + 'verbose_name_plural': 'Global Views', + 'db_table': 'global_views', + 'ordering': ('-created_at',), + }, + ), + migrations.AddField( + model_name='workspacemember', + name='issue_props', + field=models.JSONField(default=plane.db.models.workspace.get_issue_props), + ), + migrations.RunPython(update_issue_activity_priority), + migrations.RunPython(update_issue_activity_blocked), + ] diff --git a/apiserver/plane/db/migrations/0046_auto_20230926_1015.py b/apiserver/plane/db/migrations/0046_auto_20230926_1015.py deleted file mode 100644 index 0d85d2c88a6..00000000000 --- a/apiserver/plane/db/migrations/0046_auto_20230926_1015.py +++ /dev/null @@ -1,55 +0,0 @@ -# Generated by Django 4.2.5 on 2023-09-26 10:29 - -from django.db import migrations, models -import plane.db.models.workspace - - -def update_issue_activity_priority(apps, schema_editor): - IssueActivity = apps.get_model("db", "IssueActivity") - updated_issue_activity = [] - for obj in IssueActivity.objects.filter(field="priority"): - # Set the old and new value to none if it is empty for Priority - obj.new_value = obj.new_value or "none" - obj.old_value = obj.old_value or "none" - updated_issue_activity.append(obj) - IssueActivity.objects.bulk_update( - updated_issue_activity, - ["new_value", "old_value"], - batch_size=1000, - ) - -def update_issue_activity_blocked(apps, schema_editor): - IssueActivity = apps.get_model("db", "IssueActivity") - updated_issue_activity = [] - for obj in IssueActivity.objects.filter(field="blocks"): - # Set the field to blocked_by - obj.field = "blocked_by" - updated_issue_activity.append(obj) - IssueActivity.objects.bulk_update( - updated_issue_activity, - ["field"], - batch_size=1000, - ) - - - -class Migration(migrations.Migration): - - dependencies = [ - ('db', '0045_auto_20230915_0655'), - ] - - operations = [ - migrations.AddField( - model_name='globalview', - name='sort_order', - field=models.FloatField(default=65535), - ), - migrations.AddField( - model_name='workspacemember', - name='issue_props', - field=models.JSONField(default=plane.db.models.workspace.get_issue_props), - ), - migrations.RunPython(update_issue_activity_priority), - migrations.RunPython(update_issue_activity_blocked), - ] From a3a1b301b81e1d2506c21efc1cc8ac1d40d72fc8 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 29 Sep 2023 16:03:55 +0530 Subject: [PATCH 4/5] chore: added epoch field --- ..._alter_analyticview_created_by_and_more.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 apiserver/plane/db/migrations/0046_issueactivity_epoch_alter_analyticview_created_by_and_more.py diff --git a/apiserver/plane/db/migrations/0046_issueactivity_epoch_alter_analyticview_created_by_and_more.py b/apiserver/plane/db/migrations/0046_issueactivity_epoch_alter_analyticview_created_by_and_more.py new file mode 100644 index 00000000000..a5ceecdf78e --- /dev/null +++ b/apiserver/plane/db/migrations/0046_issueactivity_epoch_alter_analyticview_created_by_and_more.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.5 on 2023-09-29 10:31 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('db', '0045_issueactivity_epoch_workspacemember_issue_props_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='issueactivity', + name='epoch', + field=models.FloatField(null=True), + ), + ] From 7cde7c449ae8e017223d060efd271d9b51dfcbf7 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 29 Sep 2023 16:06:56 +0530 Subject: [PATCH 5/5] dev: merged the migration files --- ...ch_workspacemember_issue_props_and_more.py | 5 +++++ ..._alter_analyticview_created_by_and_more.py | 20 ------------------- 2 files changed, 5 insertions(+), 20 deletions(-) delete mode 100644 apiserver/plane/db/migrations/0046_issueactivity_epoch_alter_analyticview_created_by_and_more.py diff --git a/apiserver/plane/db/migrations/0045_issueactivity_epoch_workspacemember_issue_props_and_more.py b/apiserver/plane/db/migrations/0045_issueactivity_epoch_workspacemember_issue_props_and_more.py index 008254a5c90..4b9c1b1eb94 100644 --- a/apiserver/plane/db/migrations/0045_issueactivity_epoch_workspacemember_issue_props_and_more.py +++ b/apiserver/plane/db/migrations/0045_issueactivity_epoch_workspacemember_issue_props_and_more.py @@ -69,6 +69,11 @@ class Migration(migrations.Migration): name='issue_props', field=models.JSONField(default=plane.db.models.workspace.get_issue_props), ), + migrations.AddField( + model_name='issueactivity', + name='epoch', + field=models.FloatField(null=True), + ), migrations.RunPython(update_issue_activity_priority), migrations.RunPython(update_issue_activity_blocked), ] diff --git a/apiserver/plane/db/migrations/0046_issueactivity_epoch_alter_analyticview_created_by_and_more.py b/apiserver/plane/db/migrations/0046_issueactivity_epoch_alter_analyticview_created_by_and_more.py deleted file mode 100644 index a5ceecdf78e..00000000000 --- a/apiserver/plane/db/migrations/0046_issueactivity_epoch_alter_analyticview_created_by_and_more.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 4.2.5 on 2023-09-29 10:31 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('db', '0045_issueactivity_epoch_workspacemember_issue_props_and_more'), - ] - - operations = [ - migrations.AddField( - model_name='issueactivity', - name='epoch', - field=models.FloatField(null=True), - ), - ]