-- CreateTable CREATE TABLE "pages" ( "id" TEXT NOT NULL, "pond_id" TEXT NOT NULL, "title" TEXT NOT NULL, "slug" TEXT NOT NULL, "ydoc_state" BYTEA NOT NULL, "sort_key" TEXT NOT NULL, "created_by" TEXT NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, "deleted_at" TIMESTAMP(3), "deleted_by" TEXT, CONSTRAINT "pages_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "page_updates" ( "id" TEXT NOT NULL, "page_id" TEXT NOT NULL, "seq" INTEGER NOT NULL, "update" BYTEA NOT NULL, CONSTRAINT "page_updates_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "page_content_cache" ( "page_id" TEXT NOT NULL, "plain_text" TEXT NOT NULL, "markdown" TEXT NOT NULL, "html" TEXT NOT NULL, "outline" JSONB NOT NULL, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "page_content_cache_pkey" PRIMARY KEY ("page_id") ); -- CreateIndex CREATE INDEX "pages_pond_id_idx" ON "pages"("pond_id"); -- CreateIndex CREATE UNIQUE INDEX "pages_pond_id_slug_key" ON "pages"("pond_id", "slug"); -- CreateIndex CREATE UNIQUE INDEX "page_updates_page_id_seq_key" ON "page_updates"("page_id", "seq"); -- AddForeignKey ALTER TABLE "pages" ADD CONSTRAINT "pages_pond_id_fkey" FOREIGN KEY ("pond_id") REFERENCES "ponds"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "pages" ADD CONSTRAINT "pages_created_by_fkey" FOREIGN KEY ("created_by") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "page_updates" ADD CONSTRAINT "page_updates_page_id_fkey" FOREIGN KEY ("page_id") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "page_content_cache" ADD CONSTRAINT "page_content_cache_page_id_fkey" FOREIGN KEY ("page_id") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE CASCADE;