# All the python scripts that are used for back migrations import uuid from plane.db.models import ProjectIdentifier from plane.db.models import Issue, IssueComment, User from django.contrib.auth.hashers import make_password # Update description and description html values for old descriptions def update_description(): try: issues = Issue.objects.all() updated_issues = [] for issue in issues: issue.description_html = f"
{issue.description}
" issue.description_stripped = issue.description updated_issues.append(issue) Issue.objects.bulk_update( updated_issues, ["description_html", "description_stripped"], batch_size=100 ) print("Success") except Exception as e: print(e) print("Failed") def update_comments(): try: issue_comments = IssueComment.objects.all() updated_issue_comments = [] for issue_comment in issue_comments: issue_comment.comment_html = f"{issue_comment.comment_stripped}
" updated_issue_comments.append(issue_comment) IssueComment.objects.bulk_update( updated_issue_comments, ["comment_html"], batch_size=100 ) print("Success") except Exception as e: print(e) print("Failed") def update_project_identifiers(): try: project_identifiers = ProjectIdentifier.objects.filter( workspace_id=None ).select_related("project", "project__workspace") updated_identifiers = [] for identifier in project_identifiers: identifier.workspace_id = identifier.project.workspace_id updated_identifiers.append(identifier) ProjectIdentifier.objects.bulk_update( updated_identifiers, ["workspace_id"], batch_size=50 ) print("Success") except Exception as e: print(e) print("Failed") def update_user_empty_password(): try: users = User.objects.filter(password="") updated_users = [] for user in users: user.password = make_password(uuid.uuid4().hex) user.is_password_autoset = True updated_users.append(user) User.objects.bulk_update(updated_users, ["password"], batch_size=50) print("Success") except Exception as e: print(e) print("Failed")