diff --git a/src/migrations/20260312_120000_pages_redirect_fields.ts b/src/migrations/20260312_120000_pages_redirect_fields.ts new file mode 100644 index 00000000..90df3c04 --- /dev/null +++ b/src/migrations/20260312_120000_pages_redirect_fields.ts @@ -0,0 +1,22 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'; + +export async function up({ db }: MigrateUpArgs): Promise { + // redirect_permanent is a non-localized checkbox → stored on the main pages table + await db.execute(sql` + ALTER TABLE "pages" ADD COLUMN IF NOT EXISTS "redirect_permanent" boolean DEFAULT true; + `); + + // redirect_url is a localized text field → stored on the pages_locales table + await db.execute(sql` + ALTER TABLE "pages_locales" ADD COLUMN IF NOT EXISTS "redirect_url" varchar; + `); +} + +export async function down({ db }: MigrateDownArgs): Promise { + await db.execute(sql` + ALTER TABLE "pages" DROP COLUMN IF EXISTS "redirect_permanent"; + `); + await db.execute(sql` + ALTER TABLE "pages_locales" DROP COLUMN IF EXISTS "redirect_url"; + `); +} diff --git a/src/migrations/index.ts b/src/migrations/index.ts index 99f15c7b..11dcba3a 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_20260312_120000_pages_redirect_fields from './20260312_120000_pages_redirect_fields'; 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_20260312_120000_pages_redirect_fields.up, + down: migration_20260312_120000_pages_redirect_fields.down, + name: '20260312_120000_pages_redirect_fields', + }, ];