# Generated by Django 4.2.6 on 2023-10-30 13:16 import os import sys import shutil import ram.utils import bookshelf.models from django.db import migrations, models from django.conf import settings def move_images(apps, schema_editor): sys.stdout.write("\n Processing files. Please await...") for r in bookshelf.models.BaseBookImage.objects.all(): fname = os.path.basename(r.image.path) new_image = bookshelf.models.book_image_upload(r, fname) new_path = os.path.join(settings.MEDIA_ROOT, new_image) os.makedirs(os.path.dirname(new_path), exist_ok=True) try: shutil.move(r.image.path, new_path) except FileNotFoundError: sys.stderr.write(" !! FileNotFoundError: {}\n".format(new_image)) pass r.image.name = new_image r.save() class Migration(migrations.Migration): dependencies = [ ("bookshelf", "0008_alter_author_options_alter_publisher_options"), ] # Migration is stale and shouldn't be used since model hes been heavily # modified since then. Leaving it here for reference. operations = [ # migrations.AlterField( # model_name="bookimage", # name="image", # field=models.ImageField( # blank=True, # null=True, # storage=ram.utils.DeduplicatedStorage, # upload_to=bookshelf.models.book_image_upload, # ), # ), # migrations.RunPython( # move_images, # reverse_code=migrations.RunPython.noop # ), ]