Implemented Oauth
This commit is contained in:
30
backend/prisma/migrations/add_google_oauth_reference.sql
Normal file
30
backend/prisma/migrations/add_google_oauth_reference.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- Migration: Add Google OAuth Support
|
||||
-- Description: Adds googleId field to User table and makes password optional for OAuth users
|
||||
-- Date: 2025-01-01
|
||||
|
||||
-- Step 1: Add googleId column (nullable, unique)
|
||||
ALTER TABLE "User" ADD COLUMN "googleId" TEXT;
|
||||
|
||||
-- Step 2: Make password column nullable (for OAuth users who don't have passwords)
|
||||
ALTER TABLE "User" ALTER COLUMN "password" DROP NOT NULL;
|
||||
|
||||
-- Step 3: Add unique constraint on googleId
|
||||
ALTER TABLE "User" ADD CONSTRAINT "User_googleId_key" UNIQUE ("googleId");
|
||||
|
||||
-- Step 4: Create index on googleId for faster lookups
|
||||
CREATE INDEX "User_googleId_idx" ON "User"("googleId");
|
||||
|
||||
-- Step 5: Verify existing indexes (email should already be indexed)
|
||||
-- CREATE INDEX "User_email_idx" ON "User"("email"); -- Should already exist
|
||||
|
||||
-- Notes:
|
||||
-- 1. Existing users with passwords will continue to work normally
|
||||
-- 2. New OAuth users will have NULL password and a googleId
|
||||
-- 3. Users can have both password and googleId if they link accounts
|
||||
-- 4. Email remains unique across all users (OAuth and traditional)
|
||||
|
||||
-- Rollback instructions (if needed):
|
||||
-- ALTER TABLE "User" DROP CONSTRAINT "User_googleId_key";
|
||||
-- DROP INDEX "User_googleId_idx";
|
||||
-- ALTER TABLE "User" DROP COLUMN "googleId";
|
||||
-- ALTER TABLE "User" ALTER COLUMN "password" SET NOT NULL;
|
||||
Reference in New Issue
Block a user