update db schema
This commit is contained in:
1 parent
11d44ccfd3
commit
0908e51791
4 files changed
+109
-24
No files matched your search
+4
-19
@@ -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"
|
||||
|
||||
Reference in new issue
Block a user