15 lines
704 B
SQL
15 lines
704 B
SQL
-- 002_ci_username.sql
|
|
-- Case-insensitive unique indexes for username and email.
|
|
-- Replaces the default UNIQUE constraint (which is case-sensitive).
|
|
|
|
-- Normalize existing rows to lowercase first
|
|
UPDATE users SET username = LOWER(username) WHERE username != LOWER(username);
|
|
UPDATE users SET email = LOWER(email) WHERE email != LOWER(email);
|
|
|
|
-- Drop old case-sensitive unique constraints and add case-insensitive indexes
|
|
ALTER TABLE users DROP CONSTRAINT IF EXISTS users_username_key;
|
|
ALTER TABLE users DROP CONSTRAINT IF EXISTS users_email_key;
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS users_username_ci ON users (LOWER(username));
|
|
CREATE UNIQUE INDEX IF NOT EXISTS users_email_ci ON users (LOWER(email));
|