Verify demo seed user and make init FK creation idempotent
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user