wwwfiberdirekt/src/migrations/20260216_183152.ts

71 lines
4.9 KiB
TypeScript

import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
await db.execute(sql`
ALTER TABLE "pages_blocks_fd_contact_form_form_fields" DISABLE ROW LEVEL SECURITY;
ALTER TABLE "_pages_v_blocks_fd_contact_form_form_fields" DISABLE ROW LEVEL SECURITY;
DROP TABLE "pages_blocks_fd_contact_form_form_fields" CASCADE;
DROP TABLE "_pages_v_blocks_fd_contact_form_form_fields" CASCADE;
ALTER TABLE "pages_blocks_fd_contact_form" ADD COLUMN "form_id" integer;
ALTER TABLE "_pages_v_blocks_fd_contact_form" ADD COLUMN "form_id" integer;
ALTER TABLE "pages_blocks_fd_contact_form" ADD CONSTRAINT "pages_blocks_fd_contact_form_form_id_forms_id_fk" FOREIGN KEY ("form_id") REFERENCES "public"."forms"("id") ON DELETE set null ON UPDATE no action;
ALTER TABLE "_pages_v_blocks_fd_contact_form" ADD CONSTRAINT "_pages_v_blocks_fd_contact_form_form_id_forms_id_fk" FOREIGN KEY ("form_id") REFERENCES "public"."forms"("id") ON DELETE set null ON UPDATE no action;
CREATE INDEX "pages_blocks_fd_contact_form_form_idx" ON "pages_blocks_fd_contact_form" USING btree ("form_id");
CREATE INDEX "_pages_v_blocks_fd_contact_form_form_idx" ON "_pages_v_blocks_fd_contact_form" USING btree ("form_id");
ALTER TABLE "pages_blocks_fd_contact_form" DROP COLUMN "submit_endpoint";
ALTER TABLE "_pages_v_blocks_fd_contact_form" DROP COLUMN "submit_endpoint";
DROP TYPE "public"."enum_pages_blocks_fd_contact_form_form_fields_type";
DROP TYPE "public"."enum_pages_blocks_fd_contact_form_form_fields_width";
DROP TYPE "public"."enum__pages_v_blocks_fd_contact_form_form_fields_type";
DROP TYPE "public"."enum__pages_v_blocks_fd_contact_form_form_fields_width";`)
}
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
await db.execute(sql`
CREATE TYPE "public"."enum_pages_blocks_fd_contact_form_form_fields_type" AS ENUM('text', 'email', 'tel', 'textarea', 'select');
CREATE TYPE "public"."enum_pages_blocks_fd_contact_form_form_fields_width" AS ENUM('half', 'full');
CREATE TYPE "public"."enum__pages_v_blocks_fd_contact_form_form_fields_type" AS ENUM('text', 'email', 'tel', 'textarea', 'select');
CREATE TYPE "public"."enum__pages_v_blocks_fd_contact_form_form_fields_width" AS ENUM('half', 'full');
CREATE TABLE "pages_blocks_fd_contact_form_form_fields" (
"_order" integer NOT NULL,
"_parent_id" varchar NOT NULL,
"id" varchar PRIMARY KEY NOT NULL,
"label" varchar,
"name" varchar,
"type" "enum_pages_blocks_fd_contact_form_form_fields_type" DEFAULT 'text',
"required" boolean DEFAULT false,
"width" "enum_pages_blocks_fd_contact_form_form_fields_width" DEFAULT 'half',
"select_options" varchar
);
CREATE TABLE "_pages_v_blocks_fd_contact_form_form_fields" (
"_order" integer NOT NULL,
"_parent_id" integer NOT NULL,
"id" serial PRIMARY KEY NOT NULL,
"label" varchar,
"name" varchar,
"type" "enum__pages_v_blocks_fd_contact_form_form_fields_type" DEFAULT 'text',
"required" boolean DEFAULT false,
"width" "enum__pages_v_blocks_fd_contact_form_form_fields_width" DEFAULT 'half',
"select_options" varchar,
"_uuid" varchar
);
ALTER TABLE "pages_blocks_fd_contact_form" DROP CONSTRAINT "pages_blocks_fd_contact_form_form_id_forms_id_fk";
ALTER TABLE "_pages_v_blocks_fd_contact_form" DROP CONSTRAINT "_pages_v_blocks_fd_contact_form_form_id_forms_id_fk";
DROP INDEX "pages_blocks_fd_contact_form_form_idx";
DROP INDEX "_pages_v_blocks_fd_contact_form_form_idx";
ALTER TABLE "pages_blocks_fd_contact_form" ADD COLUMN "submit_endpoint" varchar;
ALTER TABLE "_pages_v_blocks_fd_contact_form" ADD COLUMN "submit_endpoint" varchar;
ALTER TABLE "pages_blocks_fd_contact_form_form_fields" ADD CONSTRAINT "pages_blocks_fd_contact_form_form_fields_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages_blocks_fd_contact_form"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "_pages_v_blocks_fd_contact_form_form_fields" ADD CONSTRAINT "_pages_v_blocks_fd_contact_form_form_fields_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."_pages_v_blocks_fd_contact_form"("id") ON DELETE cascade ON UPDATE no action;
CREATE INDEX "pages_blocks_fd_contact_form_form_fields_order_idx" ON "pages_blocks_fd_contact_form_form_fields" USING btree ("_order");
CREATE INDEX "pages_blocks_fd_contact_form_form_fields_parent_id_idx" ON "pages_blocks_fd_contact_form_form_fields" USING btree ("_parent_id");
CREATE INDEX "_pages_v_blocks_fd_contact_form_form_fields_order_idx" ON "_pages_v_blocks_fd_contact_form_form_fields" USING btree ("_order");
CREATE INDEX "_pages_v_blocks_fd_contact_form_form_fields_parent_id_idx" ON "_pages_v_blocks_fd_contact_form_form_fields" USING btree ("_parent_id");
ALTER TABLE "pages_blocks_fd_contact_form" DROP COLUMN "form_id";
ALTER TABLE "_pages_v_blocks_fd_contact_form" DROP COLUMN "form_id";`)
}