diff --git a/db/init/init.sql b/db/init/init.sql index 08a4474..130bcca 100644 --- a/db/init/init.sql +++ b/db/init/init.sql @@ -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