fix(product, dashboard): manual cleanup of uploaded images (#10254)

* manual cleanup

* add changeset

* remove thumbnail on deletion
This commit is contained in:
Kasper Fabricius Kristensen
2024-11-25 11:44:22 +01:00
committed by GitHub
parent df8369028e
commit c28d0db164
4 changed files with 24 additions and 2 deletions
@@ -19,6 +19,12 @@ export class Migration20241122120331 extends Migration {
where pi.image_id = i.id;
`);
// Delete orphaned images
this.addSql(`
delete from "image"
where product_id is null;
`);
this.addSql('alter table if exists "image" alter column "product_id" set not null;');
this.addSql('alter table if exists "image" add constraint "image_product_id_foreign" foreign key ("product_id") references "product" ("id") on update cascade on delete cascade;');
this.addSql('drop table if exists "product_images" cascade;');
@@ -1690,6 +1690,16 @@ export default class ProductModuleService
sharedContext
)
upsertedProduct.images = productImages
await this.productImageService_.delete(
{
product_id: upsertedProduct.id,
id: {
$nin: productImages.map(({ id }) => id),
},
},
sharedContext
)
} else {
await this.productImageService_.delete(
{ product_id: upsertedProduct.id },