fix: data migrations for page versioning (#5100)

* dev: remove issue type back migrations

* dev: revert data migrations

* dev: update migrations to run async

* dev: remove unused imports
This commit is contained in:
Nikhil 2024-07-10 15:03:41 +05:30 committed by GitHub
parent ec1662cbd6
commit f9a3778c7f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 129 additions and 29 deletions

View file

@ -0,0 +1,63 @@
# Third party imports
from celery import shared_task
# Django imports
from django.utils import timezone
# Module imports
from plane.db.models import PageVersion, IssueType, Issue
@shared_task
def backfill_issue_type_task(projects):
# Create the issue types for all projects
IssueType.objects.bulk_create(
[
IssueType(
name="Task",
description="A task that needs to be completed.",
project_id=project["id"],
workspace_id=project["workspace_id"],
)
for project in projects
],
batch_size=1000,
)
# Update the issue type for all existing issues
issue_types = {
str(issue_type["project_id"]): str(issue_type["id"])
for issue_type in IssueType.objects.filter(
project_id__in=[project["id"] for project in projects]
).values("id", "project_id")
}
# Update the issue type for all existing issues
bulk_issues = []
for issue in Issue.objects.filter(
project_id__in=[project["id"] for project in projects]
):
issue.type_id = issue_types[str(issue.project_id)]
bulk_issues.append(issue)
# Update the issue type for all existing issues
Issue.objects.bulk_update(bulk_issues, ["type_id"], batch_size=1000)
@shared_task
def backfill_page_versions_task(pages):
# Create the page versions for all pages
PageVersion.objects.bulk_create(
[
PageVersion(
page_id=page["id"],
workspace_id=page["workspace_id"],
last_saved_at=timezone.now(),
owned_by_id=page["owned_by_id"],
description_binary=page["description_binary"],
description_html=page["description_html"],
description_stripped=page["description_stripped"],
)
for page in pages
],
batch_size=1000,
)