19 lines
904 B
SQL
19 lines
904 B
SQL
CREATE TABLE "documents" (
|
|||
|
|
"id" text PRIMARY KEY NOT NULL,
|
||
|
|
"slug" text NOT NULL,
|
||
|
|
"title" text NOT NULL,
|
||
|
|
"type" text NOT NULL,
|
||
|
|
"section" text NOT NULL,
|
||
|
|
"status" text DEFAULT 'published' NOT NULL,
|
||
|
|
"author" text DEFAULT '' NOT NULL,
|
||
|
|
"tags" text[] DEFAULT '{}' NOT NULL,
|
||
|
|
"path" text NOT NULL,
|
||
|
|
"body" text DEFAULT '' NOT NULL,
|
||
|
|
"search_vector" "tsvector" GENERATED ALWAYS AS (setweight(to_tsvector('simple', coalesce("documents"."title", '')), 'A') || setweight(to_tsvector('simple', coalesce("documents"."body", '')), 'B')) STORED NOT NULL,
|
||
|
|
"created_at" timestamp with time zone NOT NULL,
|
||
|
|
"updated_at" timestamp with time zone NOT NULL,
|
||
|
|
CONSTRAINT "documents_slug_unique" UNIQUE("slug")
|
||
|
|
);
|
||
|
|
--> statement-breakpoint
|
||
|
|
CREATE INDEX "documents_search_idx" ON "documents" USING gin ("search_vector");--> statement-breakpoint
|
||
|
|
CREATE INDEX "documents_section_idx" ON "documents" USING btree ("section");
|