update db schema

This commit is contained in:
polv committed 2021-10-15 12:43:17 +07:00
1 parent 11d44ccfd3
commit 0908e51791
4 files changed
+109 -24

No files matched your search

+4 -19
View File
@@ -1,30 +1,15 @@
CREATE OR REPLACE FUNCTION unwrap_entries (JSONB) RETURNS TEXT[] AS
$func$
DECLARE
it JSONB;
"out" TEXT[] := '{}'::text[];
BEGIN
FOR it IN (SELECT * FROM jsonb_array_elements($1))
LOOP
"out" := "out"||(it ->> 'entry');
END LOOP;
RETURN "out";
END;
$func$ LANGUAGE plpgsql IMMUTABLE;
CREATE TABLE "library" (
"id" UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4(),
"createdAt" TIMESTAMPTZ DEFAULT now(),
"updatedAt" TIMESTAMPTZ DEFAULT now(),
"userId" UUID NOT NULL DEFAULT uuid_nil() REFERENCES "user"("id") ON DELETE CASCADE,
"userId" UUID NOT NULL REFERENCES "user"("id") ON DELETE CASCADE,
"isShared" BOOLEAN,
"type" TEXT NOT NULL,
"entries" JSONB NOT NULL CHECK ("entries" -> 0 -> 'entry' IS NOT NULL),
"entry" TEXT[] GENERATED ALWAYS AS (unwrap_entries("entries")) STORED,
"entry" TEXT[] NOT NULL CHECK ("entry"[1] IS NOT NULL),
"entry.meta" JSONB DEFAULT '{}',
"title" TEXT NOT NULL,
"description" TEXT NOT NULL DEFAULT '',
"tag" TEXT[] NOT NULL DEFAULT '{}'::TEXT[]
"tag" TEXT[] NOT NULL DEFAULT '{}'
);
CREATE TRIGGER "t_library_updatedAt"