22 lines
697 B
SQL
22 lines
697 B
SQL
/*
|
|
Warnings:
|
|
|
|
- Made the column `username` on table `User` required. This step will fail if there are existing NULL values in that column.
|
|
|
|
*/
|
|
-- Backfill: assign a unique username derived from email or googleId for rows with NULL username
|
|
UPDATE "User"
|
|
SET "username" = lower(regexp_replace(split_part("email", '@', 1), '[^a-zA-Z0-9_]', '', 'g'))
|
|
WHERE "username" IS NULL;
|
|
|
|
-- Ensure uniqueness by appending a suffix for any collisions
|
|
UPDATE "User" u
|
|
SET "username" = u."username" || '_' || substr(u."id", 1, 6)
|
|
WHERE (
|
|
SELECT COUNT(*) FROM "User" u2
|
|
WHERE u2."username" = u."username" AND u2."id" != u."id"
|
|
) > 0;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "User" ALTER COLUMN "username" SET NOT NULL;
|