34 lines
1.3 KiB
SQL
34 lines
1.3 KiB
SQL
CREATE extension IF NOT EXISTS pgcrypto;
|
|
SET TIMEZONE='UTC';
|
|
|
|
-- AuthN
|
|
--
|
|
--DROP TABLE IF EXISTS "authn";
|
|
CREATE TABLE IF NOT EXISTS "authn" (
|
|
"id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
"ppid" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"verified_at" TIMESTAMPTZ NOT NULL DEFAULT ('0001-01-01 00:00:00' AT TIME ZONE 'UTC'),
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT (now() AT TIME ZONE 'UTC'),
|
|
"updated_at" TIMESTAMPTZ NOT NULL DEFAULT (now() AT TIME ZONE 'UTC'),
|
|
"deleted_at" TIMESTAMPTZ NOT NULL DEFAULT ('0001-01-01 00:00:00' AT TIME ZONE 'UTC')
|
|
);
|
|
--CREATE INDEX CONCURRENTLY IF NOT EXISTS "idx_ppid" ON "authn" ("ppid");
|
|
CREATE INDEX IF NOT EXISTS "idx_ppid" ON "authn" ("ppid");
|
|
CREATE INDEX IF NOT EXISTS "idx_email" ON "authn" ("email");
|
|
|
|
-- Events
|
|
--
|
|
--DROP TABLE IF EXISTS "events";
|
|
CREATE TABLE IF NOT EXISTS "events" (
|
|
"id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
"action" TEXT NOT NULL,
|
|
"table" TEXT NOT NULL,
|
|
"record" TEXT NOT NULL,
|
|
"by" TEXT NOT NULL,
|
|
"at" TIMESTAMP NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
|
|
);
|
|
--CREATE INDEX CONCURRENTLY IF NOT EXISTS "idx_record" ON "events" ("record");
|
|
CREATE INDEX IF NOT EXISTS "idx_record" ON "events" ("record");
|
|
CREATE INDEX IF NOT EXISTS "idx_by" ON "events" ("by");
|