1 DROP TYPE IF EXISTS "nameSchemaType";
2 CREATE TYPE "nameSchemaType" AS ENUM ('single', 'western');
4 DROP TABLE IF EXISTS "names";
8 "type" "nameSchemaType" NOT NULL,
9 "created" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
10 "deleted" timestamp NULL DEFAULT NULL,
11 "deprecated" timestamp NULL DEFAULT NULL,
16 DROP TABLE IF EXISTS "nameParts";
17 DROP TYPE IF EXISTS "namePartType";
18 CREATE TYPE "namePartType" AS ENUM ('first-name', 'last-name', 'single-name', 'suffix');
20 CREATE TABLE "nameParts" (
22 "position" int NOT NULL,
23 "type" "namePartType" NOT NULL,
24 "value" varchar(255) NOT NULL
27 INSERT INTO "names" ("uid", "type") (SELECT "id" as "uid", 'western'::"nameSchemaType" AS "type" from users ORDER BY id);
28 INSERT INTO "nameParts" SELECT names.id, 1, 'first-name'::"namePartType", "fname" FROM "users" INNER JOIN "names" ON "names"."uid" = "users"."id";
30 INSERT INTO "nameParts" SELECT names.id, 2, 'first-name'::"namePartType", "mname" FROM "users" INNER JOIN "names" ON "names"."uid" = "users"."id" WHERE "mname" != '';
31 INSERT INTO "nameParts" SELECT names.id, 3, 'last-name'::"namePartType", "lname" FROM "users" INNER JOIN "names" ON "names"."uid" = "users"."id";
32 INSERT INTO "nameParts" SELECT names.id, 4, 'suffix'::"namePartType", "suffix" FROM "users" INNER JOIN "names" ON "names"."uid" = "users"."id" WHERE "suffix" != '';
34 UPDATE "notary" SET "to"=(SELECT "id" FROM "names" WHERE "uid"="notary"."to");
36 ALTER TABLE "users" ADD "preferredName" int;
37 UPDATE "users" SET "preferredName"=(SELECT "id" FROM "names" WHERE "uid"="users"."id");
38 ALTER TABLE "users" DROP "fname";
39 ALTER TABLE "users" DROP "mname";
40 ALTER TABLE "users" DROP "lname";
41 ALTER TABLE "users" DROP "suffix";