mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-05-27 13:18:18 -05:00
Fix: created date fixes in v2.16 (#10026)
This commit is contained in:
parent
eb07876657
commit
59bf25edb1
@ -5,28 +5,41 @@ import datetime
|
||||
|
||||
from django.db import migrations
|
||||
from django.db import models
|
||||
from django.db.models.functions import TruncDate
|
||||
from django.utils.timezone import localtime
|
||||
|
||||
|
||||
def migrate_date(apps, schema_editor):
|
||||
Document = apps.get_model("documents", "Document")
|
||||
queryset = Document.objects.annotate(
|
||||
truncated_created=TruncDate("created"),
|
||||
).values("id", "truncated_created")
|
||||
|
||||
# Batch to avoid loading all objects into memory at once,
|
||||
# which would be problematic for large datasets.
|
||||
batch_size = 500
|
||||
updates = []
|
||||
for item in queryset.iterator(chunk_size=batch_size):
|
||||
updates.append(
|
||||
Document(id=item["id"], created_date=item["truncated_created"]),
|
||||
)
|
||||
total_updated = 0
|
||||
total_checked = 0
|
||||
|
||||
for doc in Document.objects.only("id", "created").iterator(chunk_size=batch_size):
|
||||
total_checked += 1
|
||||
if doc.created:
|
||||
doc.created_date = localtime(doc.created).date()
|
||||
updates.append(doc)
|
||||
|
||||
if len(updates) >= batch_size:
|
||||
Document.objects.bulk_update(updates, ["created_date"])
|
||||
total_updated += len(updates)
|
||||
print(
|
||||
f"[1067_alter_document_created] {total_updated} of {total_checked} processed...",
|
||||
)
|
||||
updates.clear()
|
||||
|
||||
if updates:
|
||||
Document.objects.bulk_update(updates, ["created_date"])
|
||||
total_updated += len(updates)
|
||||
print(
|
||||
f"[1067_alter_document_created] {total_updated} of {total_checked} processed...",
|
||||
)
|
||||
|
||||
print(f"[1067_alter_document_created] completed for {total_checked} documents.")
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
24
src/documents/migrations/1068_alter_document_created.py
Normal file
24
src/documents/migrations/1068_alter_document_created.py
Normal file
@ -0,0 +1,24 @@
|
||||
# Generated by Django 5.1.8 on 2025-05-23 05:50
|
||||
|
||||
import datetime
|
||||
|
||||
from django.db import migrations
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("documents", "1067_alter_document_created"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="document",
|
||||
name="created",
|
||||
field=models.DateField(
|
||||
db_index=True,
|
||||
default=datetime.date.today,
|
||||
verbose_name="created",
|
||||
),
|
||||
),
|
||||
]
|
@ -215,7 +215,7 @@ class Document(SoftDeleteModel, ModelWithOwner):
|
||||
|
||||
created = models.DateField(
|
||||
_("created"),
|
||||
default=datetime.datetime.today,
|
||||
default=datetime.date.today,
|
||||
db_index=True,
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user