From bc8aadec53812e3bf6dc808fbc2f0466dbe2b36c Mon Sep 17 00:00:00 2001 From: Mathieu Agopian Date: Tue, 6 Oct 2026 16:05:07 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(migration)=20export=20management=20co?= =?UTF-8?q?mmand=20also=20exports=20DocumentFavorite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Export the favorites Signed-off-by: Mathieu Agopian --- .../core/management/commands/export_migration.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/backend/core/management/commands/export_migration.py b/src/backend/core/management/commands/export_migration.py index 1b7e63d4d..29e9dbdc6 100644 --- a/src/backend/core/management/commands/export_migration.py +++ b/src/backend/core/management/commands/export_migration.py @@ -25,7 +25,7 @@ from datetime import datetime from django.core.management.base import BaseCommand -from core.models import Document, DocumentAccess, Invitation, LinkTrace, User +from core.models import Document, DocumentAccess, DocumentFavorite, Invitation, LinkTrace, User try: from zoneinfo import ZoneInfo as _ZoneInfo @@ -74,6 +74,7 @@ class Command(BaseCommand): self._export_document_accesses(stream) self._export_invitations(stream) self._export_link_traces(stream) + self._export_document_favorites(stream) def _progress(self, label, count, done=False): """Overwrite the current stderr line with an incrementing count.""" @@ -147,3 +148,16 @@ class Command(BaseCommand): count += 1 self._progress("link traces", count) self._progress("link traces", count, done=True) + + def _export_document_favorites(self, stream): + """Export all concrete DocumentFavorite fields.""" + self.stderr.write("Exporting document favorites...") + count = 0 + for favorite in ( + DocumentFavorite.objects.order_by("created_at").values().iterator() + ): + pk = favorite.pop("id") + _write(stream, "core.documentfavorite", pk, favorite) + count += 1 + self._progress("document favorites", count) + self._progress("document favorites", count, done=True)