Introduce configuration validation, Postgres migrations, Redis/storage adapters, and the seed sample video.
20 lines
551 B
SQL
20 lines
551 B
SQL
ALTER TABLE users ADD COLUMN IF NOT EXISTS username TEXT;
|
|
|
|
UPDATE users
|
|
SET username = lower(split_part(email, '@', 1))
|
|
WHERE username IS NULL OR username = '';
|
|
|
|
UPDATE users u
|
|
SET username = u.username || '-' || u.id::text
|
|
WHERE u.id IN (
|
|
SELECT id FROM (
|
|
SELECT id,
|
|
ROW_NUMBER() OVER (PARTITION BY username ORDER BY id) AS rn
|
|
FROM users
|
|
) ranked
|
|
WHERE ranked.rn > 1
|
|
);
|
|
|
|
ALTER TABLE users ALTER COLUMN username SET NOT NULL;
|
|
CREATE UNIQUE INDEX IF NOT EXISTS users_username_uidx ON users (lower(username));
|