14 lines
728 B
MySQL
14 lines
728 B
MySQL
|
|
-- Migration 028 — Google OAuth (OIDC) sign-in.
|
||
|
|
--
|
||
|
|
-- google_sub is Google's stable subject identifier — the join key for a linked
|
||
|
|
-- or auto-provisioned account (unique, but NULL for password-only users).
|
||
|
|
-- email is captured for display + domain checks. password_hash becomes nullable
|
||
|
|
-- so an OAuth-only account can exist without a local password; such an account
|
||
|
|
-- simply can't use the password login path until an admin sets one.
|
||
|
|
|
||
|
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS google_sub TEXT;
|
||
|
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS email TEXT;
|
||
|
|
ALTER TABLE users ALTER COLUMN password_hash DROP NOT NULL;
|
||
|
|
|
||
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_users_google_sub ON users(google_sub) WHERE google_sub IS NOT NULL;
|