Verify demo seed user and make init FK creation idempotent

This commit is contained in:
2026-03-11 20:16:45 +01:00
parent eefbad2318
commit 285d6edb2e

View File

@@ -91,8 +91,22 @@ CREATE TABLE IF NOT EXISTS `tenants` (
CONSTRAINT `fk_tenants_status_changed_by` FOREIGN KEY (`status_changed_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
ALTER TABLE `users`
ADD CONSTRAINT `fk_users_current_tenant` FOREIGN KEY (`current_tenant_id`) REFERENCES `tenants` (`id`) ON DELETE SET NULL;
SET @fk_users_current_tenant_exists = (
SELECT COUNT(*)
FROM information_schema.TABLE_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = DATABASE()
AND TABLE_NAME = 'users'
AND CONSTRAINT_NAME = 'fk_users_current_tenant'
AND CONSTRAINT_TYPE = 'FOREIGN KEY'
);
SET @sql_add_fk_users_current_tenant = IF(
@fk_users_current_tenant_exists = 0,
'ALTER TABLE `users` ADD CONSTRAINT `fk_users_current_tenant` FOREIGN KEY (`current_tenant_id`) REFERENCES `tenants` (`id`) ON DELETE SET NULL',
'SELECT 1'
);
PREPARE stmt_add_fk_users_current_tenant FROM @sql_add_fk_users_current_tenant;
EXECUTE stmt_add_fk_users_current_tenant;
DEALLOCATE PREPARE stmt_add_fk_users_current_tenant;
CREATE TABLE IF NOT EXISTS `roles` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -671,6 +685,7 @@ INSERT INTO `users` (
`last_name`,
`display_name`,
`email`,
`email_verified_at`,
`password`,
`locale`,
`totp_secret`,
@@ -688,6 +703,7 @@ SELECT
'Demo',
'Detlef Demo',
'demo@user.com',
NOW(),
'$2y$12$KVCQvuy4Pl1aySBuzSpc7ehpZhAzYZkndDI9OaMi05E2P/Mhob5HO',
'de',
NULL,
@@ -700,6 +716,10 @@ SELECT
NULL
WHERE NOT EXISTS (SELECT 1 FROM users WHERE email = 'demo@user.com');
UPDATE `users`
SET `email_verified_at` = COALESCE(`email_verified_at`, NOW())
WHERE `email` = 'demo@user.com';
INSERT INTO `user_tenants` (`user_id`, `tenant_id`, `created`)
SELECT u.id, t.id, NOW()
FROM users u