-- CreateTable CREATE TABLE "labels" ( "id" TEXT NOT NULL, "pond_id" TEXT NOT NULL, "parent_id" TEXT, "name" TEXT NOT NULL, "color" TEXT NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "labels_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "page_labels" ( "page_id" TEXT NOT NULL, "label_id" TEXT NOT NULL, CONSTRAINT "page_labels_pkey" PRIMARY KEY ("page_id","label_id") ); -- CreateIndex CREATE INDEX "labels_pond_id_idx" ON "labels"("pond_id"); -- CreateIndex CREATE UNIQUE INDEX "labels_pond_id_parent_id_name_key" ON "labels"("pond_id", "parent_id", "name"); -- CreateIndex CREATE INDEX "page_labels_label_id_idx" ON "page_labels"("label_id"); -- AddForeignKey ALTER TABLE "labels" ADD CONSTRAINT "labels_pond_id_fkey" FOREIGN KEY ("pond_id") REFERENCES "ponds"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "labels" ADD CONSTRAINT "labels_parent_id_fkey" FOREIGN KEY ("parent_id") REFERENCES "labels"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "page_labels" ADD CONSTRAINT "page_labels_page_id_fkey" FOREIGN KEY ("page_id") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "page_labels" ADD CONSTRAINT "page_labels_label_id_fkey" FOREIGN KEY ("label_id") REFERENCES "labels"("id") ON DELETE CASCADE ON UPDATE CASCADE;