Files
kaffeekasse-saas/database/migrations/0003_saas_auth_account_fields.sql
T
clemens 5baf6542ce M3 Registrierung und Login-Grundlage ergänzen
- SaaS-Auth-Helper und PDO-Datenbankzugriff einführen
- Registrierung, Login, Logout und Kontoansicht ergänzen
- Auth-Migration, Flow-Check und Smoke-Abdeckung aktualisieren
2026-07-12 20:17:42 +02:00

87 lines
2.0 KiB
SQL

SET @schema_name = DATABASE();
SET @sql = (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @schema_name
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'email_verified_at'
),
'SELECT 1',
'ALTER TABLE users ADD COLUMN email_verified_at DATETIME NULL AFTER status'
)
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @sql = (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @schema_name
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'mfa_enabled'
),
'SELECT 1',
'ALTER TABLE users ADD COLUMN mfa_enabled TINYINT(1) NOT NULL DEFAULT 0 AFTER email_verified_at'
)
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @sql = (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @schema_name
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'disabled_at'
),
'SELECT 1',
'ALTER TABLE users ADD COLUMN disabled_at DATETIME NULL AFTER mfa_enabled'
)
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @sql = (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = @schema_name
AND TABLE_NAME = 'participants'
AND INDEX_NAME = 'uq_participants_tenant_user'
),
'SELECT 1',
'ALTER TABLE participants ADD UNIQUE KEY uq_participants_tenant_user (tenant_id, user_id)'
)
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @sql = (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = @schema_name
AND TABLE_NAME = 'participants'
AND INDEX_NAME = 'idx_participants_tenant_paypal_name'
),
'SELECT 1',
'ALTER TABLE participants ADD KEY idx_participants_tenant_paypal_name (tenant_id, paypal_name)'
)
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;