feat(db): drop PersonDepartment enum and wire Person.teamId relation
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
BEGIN;
|
||||
|
||||
-- Seed legacy teams from the old PersonDepartment enum English display names.
|
||||
INSERT INTO "Team" ("id", "name", "createdAt", "updatedAt")
|
||||
VALUES
|
||||
(gen_random_uuid(), 'IT', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(gen_random_uuid(), 'Engineering', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(gen_random_uuid(), 'Logistics', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(gen_random_uuid(), 'Traffic', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(gen_random_uuid(), 'Driver', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(gen_random_uuid(), 'Administration', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(gen_random_uuid(), 'Sales', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(gen_random_uuid(), 'Other', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
||||
ON CONFLICT (lower("name")) DO NOTHING;
|
||||
|
||||
-- Backfill Person.teamId from the legacy Person.department enum values.
|
||||
UPDATE "Person"
|
||||
SET "teamId" = (
|
||||
SELECT "id" FROM "Team" WHERE lower("name") = lower(CASE "department"
|
||||
WHEN 'IT' THEN 'IT'
|
||||
WHEN 'ENGINEERING' THEN 'Engineering'
|
||||
WHEN 'LOGISTICS' THEN 'Logistics'
|
||||
WHEN 'TRAFFIC' THEN 'Traffic'
|
||||
WHEN 'DRIVER' THEN 'Driver'
|
||||
WHEN 'ADMINISTRATION' THEN 'Administration'
|
||||
WHEN 'SALES' THEN 'Sales'
|
||||
WHEN 'OTHER' THEN 'Other'
|
||||
END)
|
||||
)
|
||||
WHERE "department" IS NOT NULL;
|
||||
|
||||
-- Drop the legacy department index.
|
||||
DROP INDEX "Person_department_deletedAt_idx";
|
||||
|
||||
-- Drop the legacy department column.
|
||||
ALTER TABLE "Person" DROP COLUMN "department";
|
||||
|
||||
-- Drop the legacy enum type.
|
||||
DROP TYPE "PersonDepartment";
|
||||
|
||||
COMMIT;
|
||||
+3
-16
@@ -110,22 +110,10 @@ model UserInvitation {
|
||||
// PEOPLE
|
||||
// ======================================================
|
||||
|
||||
enum PersonDepartment {
|
||||
IT
|
||||
ENGINEERING
|
||||
LOGISTICS
|
||||
TRAFFIC
|
||||
DRIVER
|
||||
ADMINISTRATION
|
||||
SALES
|
||||
OTHER
|
||||
}
|
||||
|
||||
model Person {
|
||||
id String @id @default(uuid(7)) @db.Uuid
|
||||
firstName String
|
||||
lastName String
|
||||
department PersonDepartment?
|
||||
id String @id @default(uuid(7)) @db.Uuid
|
||||
firstName String
|
||||
lastName String
|
||||
|
||||
email String?
|
||||
phone String?
|
||||
@@ -143,7 +131,6 @@ model Person {
|
||||
assignments Assignment[]
|
||||
|
||||
@@index([lastName, firstName])
|
||||
@@index([department, deletedAt])
|
||||
@@index([teamId, deletedAt])
|
||||
@@index([teamId])
|
||||
@@index([deletedAt])
|
||||
|
||||
Reference in New Issue
Block a user