Repository navigation
[13.0] MemoryError in website_sale post-migration with many images #4712
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Labels
bugstalePR/Issue without recent activity, it'll be soon closed automatically.PR/Issue without recent activity, it'll be soon closed automatically.
Description
module
website_sale
describe the bug
when running a migration from 12.0 to 13.0 with many product.image records, the migration fails after displaying many MemoryError errors.
to reproduce
affected versions: upgrade to 13.0
steps to reproduce the behavior:
- have a database in version 12.0 with
website_saleinstalled and having manyproduct.imagerecords (in my case, 21k). - run openupgrade to upgrade to 13.0.
expected behavior
the database and its filestore should be correctly upgraded to 13.0.
additional context
log:
2025-01-15 17:21:08,640 1 INFO odoo-upgrade odoo.modules.migration: module website_sale: Running migration [13.0.1.0>] post-migration
2025-01-15 17:21:08,643 1 INFO odoo-upgrade OpenUpgrade: website_sale: post-migration script called with version 12.0.1.0
2025-01-15 17:21:08,643 1 INFO odoo-upgrade odoo.models: Computing parent_path for table product_public_category...
2025-01-15 17:21:08,659 1 DEBUG odoo-upgrade OpenUpgrade: 0 rows affected after 0:00:00.003386 running
UPDATE product_image
SET name = 'Image ' || id
WHERE name IS NULL
2025-01-15 17:23:14,217 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19497: MemoryError()
2025-01-15 17:23:14,234 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19496: MemoryError()
2025-01-15 17:23:14,235 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19495: MemoryError()
2025-01-15 17:23:14,236 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19494: MemoryError()
2025-01-15 17:23:14,238 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19493: MemoryError()
2
(…)
2025-01-15 17:23:20,981 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 15232: MemoryError()
2025-01-15 17:23:20,982 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 15231: MemoryError()
2025-01-15 17:23:20,983 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 15230: MemoryError()
2025-01-15 17:23:21,010 1 ERROR odoo-upgrade OpenUpgrade: website_sale: error in migration script /odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py:
2025-01-15 17:23:21,010 1 ERROR odoo-upgrade OpenUpgrade:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).datas', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).store_fname', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1147, in compute_value
records._compute_field_value(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 4021, in _compute_field_value
getattr(self, field.compute)()
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 199, in _compute_datas
if attach.store_fname:
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 32, in convert_image_attachments
Model.browse(attachment.res_id).image_1920 = attachment.datas
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1062, in __get__
self.compute_value(recs)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 2001, in compute_value
super().compute_value(records)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1150, in compute_value
env.add_to_compute(field, records)
File "/odoo_env/src/openupgrade/odoo/api.py", line 690, in add_to_compute
self.all.tocompute[field].update(records._ids)
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).res_id', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/venv/lib/python3.7/site-packages/openupgradelib/openupgrade.py", line 2285, in wrapped_function
version,
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 66, in migrate
convert_image_attachments(env)
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 38, in convert_image_attachments
attachment.res_id,
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
2025-01-15 17:23:21,082 1 ERROR odoo-upgrade odoo.modules.loading: Error executing post migration script for module website_sale
`-> website_sale_management
`-> website_sale_product_description
`-> website_sale_product_sort
`-> website_sale_product_style_badge
`-> website_sale_require_legal
:
2025-01-15 17:23:21,086 1 ERROR odoo-upgrade odoo.modules.registry: Failed to load registry
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).datas', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).store_fname', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1147, in compute_value
records._compute_field_value(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 4021, in _compute_field_value
getattr(self, field.compute)()
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 199, in _compute_datas
if attach.store_fname:
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 32, in convert_image_attachments
Model.browse(attachment.res_id).image_1920 = attachment.datas
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1062, in __get__
self.compute_value(recs)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 2001, in compute_value
super().compute_value(records)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1150, in compute_value
env.add_to_compute(field, records)
File "/odoo_env/src/openupgrade/odoo/api.py", line 690, in add_to_compute
self.all.tocompute[field].update(records._ids)
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).res_id', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/modules/registry.py", line 87, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 489, in load_modules
force, status, report, loaded_modules, update_module, models_to_check, upg_registry)
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 368, in load_marked_modules
upg_registry=upg_registry,
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 256, in load_module_graph
migrations.migrate_module(package, 'post')
File "/odoo_env/src/openupgrade/odoo/modules/migration.py", line 191, in migrate_module
migrate(self.cr, installed_version)
File "/opt/venv/lib/python3.7/site-packages/openupgradelib/openupgrade.py", line 2285, in wrapped_function
version,
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 66, in migrate
convert_image_attachments(env)
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 38, in convert_image_attachments
attachment.res_id,
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
2025-01-15 17:23:21,087 1 CRITICAL odoo-upgrade odoo.service.server: Failed to initialize database `odoo-upgrade`.
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).datas', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).store_fname', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1147, in compute_value
records._compute_field_value(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 4021, in _compute_field_value
getattr(self, field.compute)()
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 199, in _compute_datas
if attach.store_fname:
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 32, in convert_image_attachments
Model.browse(attachment.res_id).image_1920 = attachment.datas
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1062, in __get__
self.compute_value(recs)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 2001, in compute_value
super().compute_value(records)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1150, in compute_value
env.add_to_compute(field, records)
File "/odoo_env/src/openupgrade/odoo/api.py", line 690, in add_to_compute
self.all.tocompute[field].update(records._ids)
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).res_id', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/service/server.py", line 1194, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
File "/odoo_env/src/openupgrade/odoo/modules/registry.py", line 87, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 489, in load_modules
force, status, report, loaded_modules, update_module, models_to_check, upg_registry)
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 368, in load_marked_modules
upg_registry=upg_registry,
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 256, in load_module_graph
migrations.migrate_module(package, 'post')
File "/odoo_env/src/openupgrade/odoo/modules/migration.py", line 191, in migrate_module
migrate(self.cr, installed_version)
File "/opt/venv/lib/python3.7/site-packages/openupgradelib/openupgrade.py", line 2285, in wrapped_function
version,
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 66, in migrate
convert_image_attachments(env)
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 38, in convert_image_attachments
attachment.res_id,
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
2025-01-15 17:23:21,090 1 INFO odoo-upgrade odoo.service.server: Initiating shutdown
2025-01-15 17:23:21,090 1 INFO odoo-upgrade odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown.
2025-01-15 17:23:21,090 1 INFO odoo-upgrade odoo.sql_db: ConnectionPool(used=0/count=0/max=64): Closed 1 connections
i tried using openupgrade.chunked() to iterate over the attachments. it doesn’t prevent the MemoryError errors, but it stops trying later.
Metadata
Metadata
Assignees
Labels
bugstalePR/Issue without recent activity, it'll be soon closed automatically.PR/Issue without recent activity, it'll be soon closed automatically.
Activity
pedrobaeza commentedon Jan 21, 2025
I don't think this is a question of the number of images, but a corrupted image that triggers this problem. Please investigate which one is triggering the error.
huguesdk commentedon Jan 21, 2025
@pedrobaeza thank you for your answer. i looked into it, but i could not (yet) find a corrupted image triggering the problem. at each run, the id of the
product.imageattachement that triggers the first error is different (sometimes higher, sometimes lower), so i still think it is a memory exhaustion problem due to the number of images.we can see here that the function loops over all the product images and assigns
attachment.datastoproduct.image.image_1920. is this actually loading the data from the files into abytesstring? at which point is this persisted to the filestore and removed from memory? i guess this only happens at the end of the transaction, right? there are tens of gigabytes of (base64-encoded) data handled in this loop, and the computer on which this runs has 32 gib of ram.how can we force the data to be written to the filestore and removed from memory, or avoid loading so much data in memory? should we create the attachment and copy the file data by hand? i tried iterating over the ids, loading only one record at the time and committing the transaction at each step, but that didn’t change much.
pedrobaeza commentedon Jan 21, 2025
I see... then it's not that. I have migrated DBs with 30k products with images without problems in a 64 GB server, but I haven't dug in the internals on how the memory is managed in these cases. Maybe a savepoint/flush in between may help.
chunkedis not doing that.david19942 commentedon Nov 13, 2025
Has a solution been found for this problem?
I'm having the same problem. When I migrate from v12 to v13, I get a memory error due to the large number of products I have (over 25,000).
I've tried several things, like updating without adding the filestore, which results in a very large log of 404 errors because the files can't be found. Once the migration is complete, I add the filestore in subsequent versions, and it doesn't give any more errors. However, when I get to v18, it doesn't display any images—not for products, contacts, or anything else. They don't appear as broken images, and there's no 404 error in the log either. Although I check, the binary is still correctly present in my updated database, pointing to the folder, but it's not being displayed. I understand that it must make some change to the ir_attachment table during the v13 migration to update the image field or something similar.
But to this day, I'm still struggling with this unsolvable problem.
MiquelRForgeFlow commentedon Nov 13, 2025
Perhaps it has to do with odoo/odoo#235077
david19942 commentedon Nov 13, 2025
If I understand correctly, that's for transferring images/files from remote to local, but my filestore is local. I've downloaded the entire filestore, and it works correctly in version 12. The problem arises when I migrate to version 13 and it performs the migration over the products, because having so many products causes a memory error. As I said, if I understand correctly, my filestore is local and always remains local, since I manually transfer it from version to version as I update.
MiquelRForgeFlow commentedon Nov 13, 2025
Right. Let's understand the issue through the logs:
It's called here: https://github.com/OCA/OpenUpgrade/blob/13.0/addons/website_sale/migrations/13.0.1.0/post-migration.py#L32
But
datasis a computed field.Which is called in https://github.com/OCA/OpenUpgrade/blob/13.0/odoo/addons/base/models/ir_attachment.py#L199.
So it uses
store_fname. The fieldstore_fnamestores the attachment content, but it's usually a lot of bytes. But the cache will have to load so much data: thestore_fnamefor all the attachments from thesearchinconvert_image_attachments. It's like putting a big chunk of the filestore in the cache, which it would break some memory limit.Thus, try migrating to v13 increasing the memory limit (https://github.com/OCA/OpenUpgrade/blob/13.0/odoo/tools/config.py#L307).
david19942 commentedon Nov 13, 2025
I increased the memory size to 32GB, but after 11 minutes it always ends up failing and giving a memory error.
Look my error:
MiquelRForgeFlow commentedon Nov 13, 2025
It seems this error in
productmodule post-migration is not the same that the initial one.I don't know why it tries to create an attachment at that point of the migration. But it's clear that the attachment creation fails because the value is wrong (and cannot decode).
david19942 commentedon Nov 14, 2025
Is it possible that the image or attachment is broken or incorrectly encoded? I ask because I need to search for the corrupted file in this case, as I have to look through all the products, contacts, and PDFs to find the culprit since it's not showing me any ID.
huguesdk commentedon Nov 14, 2025
here is how we fixed the problem on our side. what do you think?
MiquelRForgeFlow commentedon Nov 14, 2025
@huguesdk that's nice!
david19942 commentedon Nov 14, 2025
I tried several things:
New error:
Migration is usually stopped after 12 minutes.
I'm not sure if the problem can be continued in this thread, as I thought it was something related.
huguesdk commentedon Nov 14, 2025
is there enough free disk space for the filestore?
david19942 commentedon Nov 14, 2025
Yes, there is 80GB of free space.
huguesdk commentedon Nov 14, 2025
have you tried applying the changes like here but in this script? it’s almost the same function.
david19942 commentedon Nov 17, 2025
After several checks, your solution finally works perfectly.
I was able to migrate the database from v12 to v18 with all the product images and it didn't give any errors related to attachments.
Thanks a lot @huguesdk !
huguesdk commentedon Nov 19, 2025
@david19942 thanks for letting us know that it solved your problem. i’ve just created #5457 to allow everyone to benefit from this.
github-actions commentedon Sep 13, 2026
There hasn't been any activity on this issue in the past 6 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days.
If you want this issue to never become stale, please ask a PSC member to apply the "no stale" label.