From 663aaefc4f83c47f89112435ee5f64aa78604bbd Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Thu, 5 Mar 2026 22:17:13 +0100 Subject: [PATCH] fix(cms): add missing tablet sizes to media collection via migration --- .../20260305_222000_media_sizes_tablet.ts | 31 +++++++++++++++++++ src/migrations/index.ts | 6 ++++ 2 files changed, 37 insertions(+) create mode 100644 src/migrations/20260305_222000_media_sizes_tablet.ts diff --git a/src/migrations/20260305_222000_media_sizes_tablet.ts b/src/migrations/20260305_222000_media_sizes_tablet.ts new file mode 100644 index 00000000..2e3ca189 --- /dev/null +++ b/src/migrations/20260305_222000_media_sizes_tablet.ts @@ -0,0 +1,31 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'; + +export async function up({ db }: MigrateUpArgs): Promise { + await db.execute(sql` + ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_tablet_url" varchar; + ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_tablet_width" numeric; + ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_tablet_height" numeric; + ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_tablet_mime_type" varchar; + ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_tablet_filesize" numeric; + ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_tablet_filename" varchar; + `); + + await db.execute(sql` + CREATE INDEX IF NOT EXISTS "media_sizes_tablet_sizes_tablet_filename_idx" ON "media" USING btree ("sizes_tablet_filename"); + `); +} + +export async function down({ db }: MigrateDownArgs): Promise { + await db.execute(sql` + DROP INDEX IF EXISTS "media_sizes_tablet_sizes_tablet_filename_idx"; + `); + + await db.execute(sql` + ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_tablet_filename"; + ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_tablet_filesize"; + ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_tablet_mime_type"; + ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_tablet_height"; + ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_tablet_width"; + ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_tablet_url"; + `); +} diff --git a/src/migrations/index.ts b/src/migrations/index.ts index 99f15c7b..b9596aba 100644 --- a/src/migrations/index.ts +++ b/src/migrations/index.ts @@ -3,6 +3,7 @@ import * as migration_20260223_195151_remove_sku_unique from './20260223_195151_ import * as migration_20260225_003500_add_pages_collection from './20260225_003500_add_pages_collection'; import * as migration_20260225_175000_native_localization from './20260225_175000_native_localization'; import * as migration_20260305_215000_products_featured_image from './20260305_215000_products_featured_image'; +import * as migration_20260305_222000_media_sizes_tablet from './20260305_222000_media_sizes_tablet'; export const migrations = [ { @@ -30,4 +31,9 @@ export const migrations = [ down: migration_20260305_215000_products_featured_image.down, name: '20260305_215000_products_featured_image', }, + { + up: migration_20260305_222000_media_sizes_tablet.up, + down: migration_20260305_222000_media_sizes_tablet.down, + name: '20260305_222000_media_sizes_tablet', + }, ];