From d1df80dfc216784721191717af4d39ae56bdd7b8 Mon Sep 17 00:00:00 2001 From: francy51 Date: Thu, 26 Feb 2026 14:24:22 -0500 Subject: [PATCH] Fix auth migration for legacy column naming --- drizzle/0000_tense_centennial.sql | 103 ++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/drizzle/0000_tense_centennial.sql b/drizzle/0000_tense_centennial.sql index ac54b66..9d3e2f2 100644 --- a/drizzle/0000_tense_centennial.sql +++ b/drizzle/0000_tense_centennial.sql @@ -78,6 +78,109 @@ CREATE TABLE IF NOT EXISTS "verification" ( "updatedAt" timestamp with time zone NOT NULL ); --> statement-breakpoint +DO $$ +DECLARE + m record; +BEGIN + FOR m IN ( + SELECT * FROM ( + VALUES + ('user', 'email_verified', 'emailVerified'), + ('user', 'emailverified', 'emailVerified'), + ('user', 'created_at', 'createdAt'), + ('user', 'createdat', 'createdAt'), + ('user', 'updated_at', 'updatedAt'), + ('user', 'updatedat', 'updatedAt'), + ('user', 'ban_reason', 'banReason'), + ('user', 'banreason', 'banReason'), + ('user', 'ban_expires', 'banExpires'), + ('user', 'banexpires', 'banExpires'), + ('organization', 'created_at', 'createdAt'), + ('organization', 'createdat', 'createdAt'), + ('session', 'expires_at', 'expiresAt'), + ('session', 'expiresat', 'expiresAt'), + ('session', 'created_at', 'createdAt'), + ('session', 'createdat', 'createdAt'), + ('session', 'updated_at', 'updatedAt'), + ('session', 'updatedat', 'updatedAt'), + ('session', 'ip_address', 'ipAddress'), + ('session', 'ipaddress', 'ipAddress'), + ('session', 'user_agent', 'userAgent'), + ('session', 'useragent', 'userAgent'), + ('session', 'user_id', 'userId'), + ('session', 'userid', 'userId'), + ('session', 'impersonated_by', 'impersonatedBy'), + ('session', 'impersonatedby', 'impersonatedBy'), + ('session', 'active_organization_id', 'activeOrganizationId'), + ('session', 'activeorganizationid', 'activeOrganizationId'), + ('account', 'account_id', 'accountId'), + ('account', 'accountid', 'accountId'), + ('account', 'provider_id', 'providerId'), + ('account', 'providerid', 'providerId'), + ('account', 'user_id', 'userId'), + ('account', 'userid', 'userId'), + ('account', 'access_token', 'accessToken'), + ('account', 'accesstoken', 'accessToken'), + ('account', 'refresh_token', 'refreshToken'), + ('account', 'refreshtoken', 'refreshToken'), + ('account', 'id_token', 'idToken'), + ('account', 'idtoken', 'idToken'), + ('account', 'access_token_expires_at', 'accessTokenExpiresAt'), + ('account', 'accesstokenexpiresat', 'accessTokenExpiresAt'), + ('account', 'refresh_token_expires_at', 'refreshTokenExpiresAt'), + ('account', 'refreshtokenexpiresat', 'refreshTokenExpiresAt'), + ('account', 'created_at', 'createdAt'), + ('account', 'createdat', 'createdAt'), + ('account', 'updated_at', 'updatedAt'), + ('account', 'updatedat', 'updatedAt'), + ('verification', 'expires_at', 'expiresAt'), + ('verification', 'expiresat', 'expiresAt'), + ('verification', 'created_at', 'createdAt'), + ('verification', 'createdat', 'createdAt'), + ('verification', 'updated_at', 'updatedAt'), + ('verification', 'updatedat', 'updatedAt'), + ('member', 'organization_id', 'organizationId'), + ('member', 'organizationid', 'organizationId'), + ('member', 'user_id', 'userId'), + ('member', 'userid', 'userId'), + ('member', 'created_at', 'createdAt'), + ('member', 'createdat', 'createdAt'), + ('invitation', 'organization_id', 'organizationId'), + ('invitation', 'organizationid', 'organizationId'), + ('invitation', 'expires_at', 'expiresAt'), + ('invitation', 'expiresat', 'expiresAt'), + ('invitation', 'created_at', 'createdAt'), + ('invitation', 'createdat', 'createdAt'), + ('invitation', 'inviter_id', 'inviterId'), + ('invitation', 'inviterid', 'inviterId') + ) AS rename_map(table_name, old_column, new_column) + ) + LOOP + IF EXISTS ( + SELECT 1 + FROM information_schema.columns + WHERE table_schema = 'public' + AND table_name = m.table_name + AND column_name = m.old_column + ) + AND NOT EXISTS ( + SELECT 1 + FROM information_schema.columns + WHERE table_schema = 'public' + AND table_name = m.table_name + AND column_name = m.new_column + ) THEN + EXECUTE format( + 'ALTER TABLE %I.%I RENAME COLUMN %I TO %I', + 'public', + m.table_name, + m.old_column, + m.new_column + ); + END IF; + END LOOP; +END $$; +--> statement-breakpoint DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'account_userId_user_id_fk') THEN ALTER TABLE "account" ADD CONSTRAINT "account_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action; END IF; END $$;--> statement-breakpoint DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'invitation_organizationId_organization_id_fk') THEN ALTER TABLE "invitation" ADD CONSTRAINT "invitation_organizationId_organization_id_fk" FOREIGN KEY ("organizationId") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action; END IF; END $$;--> statement-breakpoint DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'invitation_inviterId_user_id_fk') THEN ALTER TABLE "invitation" ADD CONSTRAINT "invitation_inviterId_user_id_fk" FOREIGN KEY ("inviterId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action; END IF; END $$;--> statement-breakpoint