From d39cb1cd23cd04999c4832655f131b30444163a6 Mon Sep 17 00:00:00 2001 From: Martin Porwoll Date: Mon, 2 Mar 2026 15:41:39 +0000 Subject: [PATCH] fix: add missing social_platforms columns (oauthEndpoint, tokenValidityDays) The SocialPlatforms collection config had apiConfig.oauthEndpoint and apiConfig.tokenValidityDays fields that were never migrated to the DB. This caused a DrizzleQueryError when resolving social_platforms relationships (e.g. creating community-interactions), since the SQL query referenced non-existent columns. Applied to both dev and production databases. Co-Authored-By: Claude Opus 4.6 --- ...00_add_social_platforms_missing_columns.ts | 28 +++++++++++++++++++ src/migrations/index.ts | 6 ++++ 2 files changed, 34 insertions(+) create mode 100644 src/migrations/20260302_180000_add_social_platforms_missing_columns.ts diff --git a/src/migrations/20260302_180000_add_social_platforms_missing_columns.ts b/src/migrations/20260302_180000_add_social_platforms_missing_columns.ts new file mode 100644 index 0000000..1fb671a --- /dev/null +++ b/src/migrations/20260302_180000_add_social_platforms_missing_columns.ts @@ -0,0 +1,28 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres' + +/** + * Add missing columns to social_platforms table. + * + * The SocialPlatforms collection config has apiConfig.oauthEndpoint and + * apiConfig.tokenValidityDays fields that were added after the initial + * community phase1 migration but never migrated to the DB. + * + * Without these columns, any query that resolves social_platforms relationships + * (e.g. creating community-interactions) fails with: + * "column social_platforms.api_config_oauth_endpoint does not exist" + */ +export async function up({ db }: MigrateUpArgs): Promise { + await db.execute(sql` + ALTER TABLE "social_platforms" + ADD COLUMN IF NOT EXISTS "api_config_oauth_endpoint" varchar, + ADD COLUMN IF NOT EXISTS "api_config_token_validity_days" numeric DEFAULT 60; + `) +} + +export async function down({ db }: MigrateDownArgs): Promise { + await db.execute(sql` + ALTER TABLE "social_platforms" + DROP COLUMN IF EXISTS "api_config_oauth_endpoint", + DROP COLUMN IF EXISTS "api_config_token_validity_days"; + `) +} diff --git a/src/migrations/index.ts b/src/migrations/index.ts index e0ec4fc..94000d7 100644 --- a/src/migrations/index.ts +++ b/src/migrations/index.ts @@ -39,6 +39,7 @@ import * as migration_20260215_120000_add_monitoring_collections from './2026021 import * as migration_20260216_150000_add_card_grid_icon_fields from './20260216_150000_add_card_grid_icon_fields'; import * as migration_20260217_120000_add_tenant_to_forms from './20260217_120000_add_tenant_to_forms'; import * as migration_20260228_150000_add_html_embed_block from './20260228_150000_add_html_embed_block'; +import * as migration_20260302_180000_add_social_platforms_missing_columns from './20260302_180000_add_social_platforms_missing_columns'; export const migrations = [ { @@ -246,4 +247,9 @@ export const migrations = [ down: migration_20260228_150000_add_html_embed_block.down, name: '20260228_150000_add_html_embed_block' }, + { + up: migration_20260302_180000_add_social_platforms_missing_columns.up, + down: migration_20260302_180000_add_social_platforms_missing_columns.down, + name: '20260302_180000_add_social_platforms_missing_columns' + }, ];