···1+ALTER TABLE users ALTER COLUMN password_hash DROP NOT NULL;
2+ALTER TABLE users ADD COLUMN password_required BOOLEAN NOT NULL DEFAULT TRUE;
3+ALTER TABLE users ADD COLUMN recovery_token TEXT;
4+ALTER TABLE users ADD COLUMN recovery_token_expires_at TIMESTAMPTZ;
5+CREATE INDEX IF NOT EXISTS idx_users_recovery_token ON users(recovery_token) WHERE recovery_token IS NOT NULL;
+4
migrations/20251226_trusted_devices.sql
···0000
···1+ALTER TABLE oauth_device ADD COLUMN trusted_at TIMESTAMPTZ;
2+ALTER TABLE oauth_device ADD COLUMN trusted_until TIMESTAMPTZ;
3+ALTER TABLE oauth_device ADD COLUMN friendly_name TEXT;
4+CREATE INDEX IF NOT EXISTS idx_oauth_device_trusted ON oauth_device(trusted_until) WHERE trusted_until IS NOT NULL;