Backfill user accounts

This commit is contained in:
2026-03-29 21:44:06 -06:00
parent f944124972
commit d8622df318
3 changed files with 197 additions and 3 deletions

View File

@@ -0,0 +1,75 @@
INSERT INTO users (username, password, email, fullName, phone, role, active, tokenVersion)
SELECT
CONCAT('customer_', c.customerId) AS username,
'$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq' AS password,
c.email,
CONCAT(c.firstName, ' ', c.lastName) AS fullName,
CONCAT('200-000-', LPAD(c.customerId, 4, '0')) AS phone,
'CUSTOMER' AS role,
TRUE AS active,
0 AS tokenVersion
FROM customer c
WHERE c.user_id IS NULL
AND NOT EXISTS (
SELECT 1
FROM users u
WHERE u.username = CONCAT('customer_', c.customerId)
OR u.email = c.email
);
INSERT INTO users (username, password, email, fullName, phone, role, active, tokenVersion)
SELECT
CONCAT('employee_', e.employeeId) AS username,
'$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq' AS password,
e.email,
CONCAT(e.firstName, ' ', e.lastName) AS fullName,
CONCAT('300-000-', LPAD(e.employeeId, 4, '0')) AS phone,
CASE
WHEN UPPER(e.role) = 'MANAGER' THEN 'ADMIN'
ELSE 'STAFF'
END AS role,
TRUE AS active,
0 AS tokenVersion
FROM employee e
WHERE e.user_id IS NULL
AND NOT EXISTS (
SELECT 1
FROM users u
WHERE u.username = CONCAT('employee_', e.employeeId)
OR u.email = e.email
);
UPDATE customer c
JOIN users u ON u.email = c.email
SET c.user_id = u.id
WHERE c.user_id IS NULL;
UPDATE employee e
JOIN users u ON u.email = e.email
SET e.user_id = u.id
WHERE e.user_id IS NULL;
UPDATE users
SET
fullName = CASE
WHEN fullName IS NULL OR fullName = '' THEN username
ELSE fullName
END,
email = CASE
WHEN email IS NULL OR email = '' THEN CONCAT(username, '@petshop.local')
ELSE email
END,
phone = CASE
WHEN phone IS NULL OR phone = '' THEN CONCAT('000-000-', LPAD(id, 4, '0'))
ELSE phone
END,
active = COALESCE(active, TRUE),
tokenVersion = COALESCE(tokenVersion, 0)
WHERE fullName IS NULL
OR fullName = ''
OR email IS NULL
OR email = ''
OR phone IS NULL
OR phone = ''
OR active IS NULL
OR tokenVersion IS NULL;