# Generated by Django 4.1.1 on 2022-10-01 06:55 from django.apps.registry import Apps from django.db import migrations from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.urls import reverse def replace_with_wrapper_url( apps: Apps, schema_editor: BaseDatabaseSchemaEditor ) -> None: Attachment = apps.get_model("attachments", "Attachment") Article = apps.get_model("articles", "Article") db_alias = schema_editor.connection.alias attachments = Attachment.objects.using(db_alias).all() modified = [] for article in Article.objects.using(db_alias).all(): for attachment in attachments: article.content = article.content.replace( attachment.original_file.url, reverse("attachments:original", kwargs={"pk": attachment.pk}), ) if attachment.processed_file: article.content = article.content.replace( attachment.processed_file.url, reverse("attachments:processed", kwargs={"pk": attachment.pk}), ) modified.append(article) Article.objects.using(db_alias).bulk_update(modified, ["content"]) def replace_with_file_url(apps: Apps, schema_editor: BaseDatabaseSchemaEditor) -> None: Attachment = apps.get_model("attachments", "Attachment") Article = apps.get_model("articles", "Article") db_alias = schema_editor.connection.alias attachments = Attachment.objects.using(db_alias).all() modified = [] for article in Article.objects.using(db_alias).all(): for attachment in attachments: article.content = article.content.replace( reverse("attachments:original", kwargs={"pk": attachment.pk}), attachment.original_file.url, ) if attachment.processed_file: article.content = article.content.replace( reverse("attachments:processed", kwargs={"pk": attachment.pk}), attachment.processed_file.url, ) modified.append(article) Article.objects.using(db_alias).bulk_update(modified, ["content"]) class Migration(migrations.Migration): dependencies = [ ("articles", "0033_alter_article_options"), ("attachments", "0008_attachment_updated_at"), ] operations = [migrations.RunPython(replace_with_wrapper_url, replace_with_file_url)]