feat: add initial DB migrations and sharp dependency
- Generate initial Payload CMS migration (all collections + globals) - Add sharp for image resizing support - Add .ts extensions to payload.config.ts imports (required for migrate:create with --disable-transpile) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
d34071f9f8
commit
2b19626b68
6 changed files with 6183 additions and 16 deletions
|
|
@ -23,7 +23,8 @@
|
|||
"next": "15.4.11",
|
||||
"payload": "^3.77.0",
|
||||
"react": "19.2.3",
|
||||
"react-dom": "19.2.3"
|
||||
"react-dom": "19.2.3",
|
||||
"sharp": "^0.34.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc-node/register": "^1.11.1",
|
||||
|
|
|
|||
7
pnpm-lock.yaml
generated
7
pnpm-lock.yaml
generated
|
|
@ -47,6 +47,9 @@ importers:
|
|||
react-dom:
|
||||
specifier: 19.2.3
|
||||
version: 19.2.3(react@19.2.3)
|
||||
sharp:
|
||||
specifier: ^0.34.5
|
||||
version: 0.34.5
|
||||
devDependencies:
|
||||
'@swc-node/register':
|
||||
specifier: ^1.11.1
|
||||
|
|
@ -4537,8 +4540,7 @@ snapshots:
|
|||
|
||||
'@humanwhocodes/retry@0.4.3': {}
|
||||
|
||||
'@img/colour@1.0.0':
|
||||
optional: true
|
||||
'@img/colour@1.0.0': {}
|
||||
|
||||
'@img/sharp-darwin-arm64@0.34.5':
|
||||
optionalDependencies:
|
||||
|
|
@ -7728,7 +7730,6 @@ snapshots:
|
|||
'@img/sharp-win32-arm64': 0.34.5
|
||||
'@img/sharp-win32-ia32': 0.34.5
|
||||
'@img/sharp-win32-x64': 0.34.5
|
||||
optional: true
|
||||
|
||||
shebang-command@2.0.0:
|
||||
dependencies:
|
||||
|
|
|
|||
5399
src/migrations/20260223_152652.json
Normal file
5399
src/migrations/20260223_152652.json
Normal file
File diff suppressed because it is too large
Load diff
757
src/migrations/20260223_152652.ts
Normal file
757
src/migrations/20260223_152652.ts
Normal file
|
|
@ -0,0 +1,757 @@
|
|||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres';
|
||||
|
||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
||||
await db.execute(sql`
|
||||
CREATE TYPE "public"."enum_users_role" AS ENUM('admin', 'editor');
|
||||
CREATE TYPE "public"."enum_services_who_its_for_audience" AS ENUM('sole-trader', 'limited-company', 'startup', 'other');
|
||||
CREATE TYPE "public"."enum_services_icon" AS ENUM('bookkeeping', 'tax', 'payroll', 'vat');
|
||||
CREATE TYPE "public"."enum_services_status" AS ENUM('draft', 'published');
|
||||
CREATE TYPE "public"."enum_posts_status" AS ENUM('draft', 'published', 'scheduled');
|
||||
CREATE TYPE "public"."enum_testimonials_business_type" AS ENUM('sole-trader', 'limited-company', 'startup', 'other');
|
||||
CREATE TYPE "public"."enum_testimonials_rating" AS ENUM('1', '2', '3', '4', '5');
|
||||
CREATE TYPE "public"."enum_testimonials_source" AS ENUM('google', 'manual');
|
||||
CREATE TYPE "public"."enum_forms_confirmation_type" AS ENUM('message', 'redirect');
|
||||
CREATE TYPE "public"."enum_site_settings_chat_bot_chat_bot_mode" AS ENUM('disabled', 'ai', 'livechat', 'leadcapture');
|
||||
CREATE TABLE "users_sessions" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"created_at" timestamp(3) with time zone,
|
||||
"expires_at" timestamp(3) with time zone NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "users" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"role" "enum_users_role" DEFAULT 'editor' NOT NULL,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"email" varchar NOT NULL,
|
||||
"reset_password_token" varchar,
|
||||
"reset_password_expiration" timestamp(3) with time zone,
|
||||
"salt" varchar,
|
||||
"hash" varchar,
|
||||
"login_attempts" numeric DEFAULT 0,
|
||||
"lock_until" timestamp(3) with time zone
|
||||
);
|
||||
|
||||
CREATE TABLE "media" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"alt" varchar NOT NULL,
|
||||
"caption" varchar,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"url" varchar,
|
||||
"thumbnail_u_r_l" varchar,
|
||||
"filename" varchar,
|
||||
"mime_type" varchar,
|
||||
"filesize" numeric,
|
||||
"width" numeric,
|
||||
"height" numeric,
|
||||
"focal_x" numeric,
|
||||
"focal_y" numeric,
|
||||
"sizes_thumbnail_url" varchar,
|
||||
"sizes_thumbnail_width" numeric,
|
||||
"sizes_thumbnail_height" numeric,
|
||||
"sizes_thumbnail_mime_type" varchar,
|
||||
"sizes_thumbnail_filesize" numeric,
|
||||
"sizes_thumbnail_filename" varchar,
|
||||
"sizes_card_url" varchar,
|
||||
"sizes_card_width" numeric,
|
||||
"sizes_card_height" numeric,
|
||||
"sizes_card_mime_type" varchar,
|
||||
"sizes_card_filesize" numeric,
|
||||
"sizes_card_filename" varchar,
|
||||
"sizes_hero_url" varchar,
|
||||
"sizes_hero_width" numeric,
|
||||
"sizes_hero_height" numeric,
|
||||
"sizes_hero_mime_type" varchar,
|
||||
"sizes_hero_filesize" numeric,
|
||||
"sizes_hero_filename" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "services_whats_included" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"item" varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "services_who_its_for" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"audience" "enum_services_who_its_for_audience",
|
||||
"description" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "services_how_it_works" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"step" numeric NOT NULL,
|
||||
"title" varchar NOT NULL,
|
||||
"description" varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "services_faq" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"question" varchar NOT NULL,
|
||||
"answer" jsonb
|
||||
);
|
||||
|
||||
CREATE TABLE "services" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"title" varchar NOT NULL,
|
||||
"slug" varchar NOT NULL,
|
||||
"icon" "enum_services_icon" NOT NULL,
|
||||
"tagline" varchar,
|
||||
"description" jsonb,
|
||||
"seo_meta_title" varchar,
|
||||
"seo_meta_description" varchar,
|
||||
"seo_og_image_id" integer,
|
||||
"published_at" timestamp(3) with time zone,
|
||||
"status" "enum_services_status" DEFAULT 'draft',
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "services_rels" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"order" integer,
|
||||
"parent_id" integer NOT NULL,
|
||||
"path" varchar NOT NULL,
|
||||
"testimonials_id" integer
|
||||
);
|
||||
|
||||
CREATE TABLE "categories" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"slug" varchar NOT NULL,
|
||||
"colour" varchar,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "posts_tags" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"tag" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "posts" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"title" varchar NOT NULL,
|
||||
"slug" varchar NOT NULL,
|
||||
"author_id" integer,
|
||||
"category_id" integer,
|
||||
"cover_image_id" integer,
|
||||
"excerpt" varchar,
|
||||
"content" jsonb,
|
||||
"reading_time" numeric,
|
||||
"published_at" timestamp(3) with time zone,
|
||||
"status" "enum_posts_status" DEFAULT 'draft',
|
||||
"seo_meta_title" varchar,
|
||||
"seo_meta_description" varchar,
|
||||
"seo_og_image_id" integer,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "team_members" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"role" varchar,
|
||||
"qualifications" varchar,
|
||||
"bio" varchar,
|
||||
"photo_id" integer,
|
||||
"linked_in" varchar,
|
||||
"order" numeric,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "testimonials" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"client_name" varchar NOT NULL,
|
||||
"business_name" varchar,
|
||||
"business_type" "enum_testimonials_business_type",
|
||||
"rating" "enum_testimonials_rating",
|
||||
"quote" varchar NOT NULL,
|
||||
"photo_id" integer,
|
||||
"source" "enum_testimonials_source" DEFAULT 'manual',
|
||||
"service_id" integer,
|
||||
"featured" boolean DEFAULT false,
|
||||
"published_at" timestamp(3) with time zone,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "faqs" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"question" varchar NOT NULL,
|
||||
"answer" jsonb,
|
||||
"service_id" integer,
|
||||
"global" boolean DEFAULT false,
|
||||
"order" numeric,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_checkbox" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"label" varchar,
|
||||
"width" numeric,
|
||||
"required" boolean,
|
||||
"default_value" boolean,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_country" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"label" varchar,
|
||||
"width" numeric,
|
||||
"required" boolean,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_email" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"label" varchar,
|
||||
"width" numeric,
|
||||
"required" boolean,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_message" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"message" jsonb,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_number" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"label" varchar,
|
||||
"width" numeric,
|
||||
"default_value" numeric,
|
||||
"required" boolean,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_select_options" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" varchar NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"label" varchar NOT NULL,
|
||||
"value" varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_select" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"label" varchar,
|
||||
"width" numeric,
|
||||
"default_value" varchar,
|
||||
"placeholder" varchar,
|
||||
"required" boolean,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_state" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"label" varchar,
|
||||
"width" numeric,
|
||||
"required" boolean,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_text" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"label" varchar,
|
||||
"width" numeric,
|
||||
"default_value" varchar,
|
||||
"required" boolean,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_blocks_textarea" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"_path" text NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"label" varchar,
|
||||
"width" numeric,
|
||||
"default_value" varchar,
|
||||
"required" boolean,
|
||||
"block_name" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "forms_emails" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"email_to" varchar,
|
||||
"cc" varchar,
|
||||
"bcc" varchar,
|
||||
"reply_to" varchar,
|
||||
"email_from" varchar,
|
||||
"subject" varchar DEFAULT 'You''ve received a new message.' NOT NULL,
|
||||
"message" jsonb
|
||||
);
|
||||
|
||||
CREATE TABLE "forms" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"title" varchar NOT NULL,
|
||||
"submit_button_label" varchar,
|
||||
"confirmation_type" "enum_forms_confirmation_type" DEFAULT 'message',
|
||||
"confirmation_message" jsonb,
|
||||
"redirect_url" varchar,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "form_submissions_submission_data" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"field" varchar NOT NULL,
|
||||
"value" varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "form_submissions" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"form_id" integer NOT NULL,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "payload_kv" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"key" varchar NOT NULL,
|
||||
"data" jsonb NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "payload_locked_documents" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"global_slug" varchar,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "payload_locked_documents_rels" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"order" integer,
|
||||
"parent_id" integer NOT NULL,
|
||||
"path" varchar NOT NULL,
|
||||
"users_id" integer,
|
||||
"media_id" integer,
|
||||
"services_id" integer,
|
||||
"categories_id" integer,
|
||||
"posts_id" integer,
|
||||
"team_members_id" integer,
|
||||
"testimonials_id" integer,
|
||||
"faqs_id" integer,
|
||||
"forms_id" integer,
|
||||
"form_submissions_id" integer
|
||||
);
|
||||
|
||||
CREATE TABLE "payload_preferences" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"key" varchar,
|
||||
"value" jsonb,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "payload_preferences_rels" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"order" integer,
|
||||
"parent_id" integer NOT NULL,
|
||||
"path" varchar NOT NULL,
|
||||
"users_id" integer
|
||||
);
|
||||
|
||||
CREATE TABLE "payload_migrations" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"name" varchar,
|
||||
"batch" numeric,
|
||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "navigation_items_children" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" varchar NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"label" varchar,
|
||||
"href" varchar,
|
||||
"icon" varchar,
|
||||
"description" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "navigation_items" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"label" varchar NOT NULL,
|
||||
"href" varchar,
|
||||
"is_dropdown" boolean DEFAULT false
|
||||
);
|
||||
|
||||
CREATE TABLE "navigation" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"updated_at" timestamp(3) with time zone,
|
||||
"created_at" timestamp(3) with time zone
|
||||
);
|
||||
|
||||
CREATE TABLE "footer_columns_links" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" varchar NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"label" varchar NOT NULL,
|
||||
"href" varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "footer_columns" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"heading" varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "footer_legal_links" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"label" varchar NOT NULL,
|
||||
"href" varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE "footer" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"contact_info_address" varchar,
|
||||
"contact_info_phone" varchar,
|
||||
"contact_info_email" varchar,
|
||||
"social_links_linked_in" varchar,
|
||||
"social_links_facebook" varchar,
|
||||
"social_links_instagram" varchar,
|
||||
"copyright_text" varchar,
|
||||
"updated_at" timestamp(3) with time zone,
|
||||
"created_at" timestamp(3) with time zone
|
||||
);
|
||||
|
||||
CREATE TABLE "site_settings_webhooks" (
|
||||
"_order" integer NOT NULL,
|
||||
"_parent_id" integer NOT NULL,
|
||||
"id" varchar PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"url" varchar NOT NULL,
|
||||
"active" boolean DEFAULT true
|
||||
);
|
||||
|
||||
CREATE TABLE "site_settings" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"brand_site_name" varchar,
|
||||
"brand_tagline" varchar,
|
||||
"brand_logo_id" integer,
|
||||
"brand_logo_dark_id" integer,
|
||||
"brand_favicon_id" integer,
|
||||
"contact_address" varchar,
|
||||
"contact_phone" varchar,
|
||||
"contact_email" varchar,
|
||||
"contact_office_hours" varchar,
|
||||
"social_linked_in" varchar,
|
||||
"social_facebook" varchar,
|
||||
"social_instagram" varchar,
|
||||
"analytics_google_analytics_id" varchar,
|
||||
"analytics_google_tag_manager_id" varchar,
|
||||
"analytics_facebook_pixel_id" varchar,
|
||||
"booking_calendly_url" varchar,
|
||||
"booking_calendly_inline" boolean DEFAULT false,
|
||||
"chat_bot_chat_bot_mode" "enum_site_settings_chat_bot_chat_bot_mode" DEFAULT 'disabled',
|
||||
"chat_bot_chat_bot_custom_code" varchar,
|
||||
"notification_email" varchar,
|
||||
"seo_defaults_default_meta_title" varchar,
|
||||
"seo_defaults_default_meta_description" varchar,
|
||||
"seo_defaults_default_og_image_id" integer,
|
||||
"scripts_header_scripts" varchar,
|
||||
"scripts_footer_scripts" varchar,
|
||||
"updated_at" timestamp(3) with time zone,
|
||||
"created_at" timestamp(3) with time zone
|
||||
);
|
||||
|
||||
ALTER TABLE "users_sessions" ADD CONSTRAINT "users_sessions_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "services_whats_included" ADD CONSTRAINT "services_whats_included_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."services"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "services_who_its_for" ADD CONSTRAINT "services_who_its_for_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."services"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "services_how_it_works" ADD CONSTRAINT "services_how_it_works_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."services"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "services_faq" ADD CONSTRAINT "services_faq_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."services"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "services" ADD CONSTRAINT "services_seo_og_image_id_media_id_fk" FOREIGN KEY ("seo_og_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "services_rels" ADD CONSTRAINT "services_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."services"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "services_rels" ADD CONSTRAINT "services_rels_testimonials_fk" FOREIGN KEY ("testimonials_id") REFERENCES "public"."testimonials"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "posts_tags" ADD CONSTRAINT "posts_tags_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."posts"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "posts" ADD CONSTRAINT "posts_author_id_users_id_fk" FOREIGN KEY ("author_id") REFERENCES "public"."users"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "posts" ADD CONSTRAINT "posts_category_id_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."categories"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "posts" ADD CONSTRAINT "posts_cover_image_id_media_id_fk" FOREIGN KEY ("cover_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "posts" ADD CONSTRAINT "posts_seo_og_image_id_media_id_fk" FOREIGN KEY ("seo_og_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "team_members" ADD CONSTRAINT "team_members_photo_id_media_id_fk" FOREIGN KEY ("photo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "testimonials" ADD CONSTRAINT "testimonials_photo_id_media_id_fk" FOREIGN KEY ("photo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "testimonials" ADD CONSTRAINT "testimonials_service_id_services_id_fk" FOREIGN KEY ("service_id") REFERENCES "public"."services"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "faqs" ADD CONSTRAINT "faqs_service_id_services_id_fk" FOREIGN KEY ("service_id") REFERENCES "public"."services"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_checkbox" ADD CONSTRAINT "forms_blocks_checkbox_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_country" ADD CONSTRAINT "forms_blocks_country_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_email" ADD CONSTRAINT "forms_blocks_email_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_message" ADD CONSTRAINT "forms_blocks_message_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_number" ADD CONSTRAINT "forms_blocks_number_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_select_options" ADD CONSTRAINT "forms_blocks_select_options_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms_blocks_select"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_select" ADD CONSTRAINT "forms_blocks_select_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_state" ADD CONSTRAINT "forms_blocks_state_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_text" ADD CONSTRAINT "forms_blocks_text_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_blocks_textarea" ADD CONSTRAINT "forms_blocks_textarea_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "forms_emails" ADD CONSTRAINT "forms_emails_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "form_submissions_submission_data" ADD CONSTRAINT "form_submissions_submission_data_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."form_submissions"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "form_submissions" ADD CONSTRAINT "form_submissions_form_id_forms_id_fk" FOREIGN KEY ("form_id") REFERENCES "public"."forms"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."payload_locked_documents"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_users_fk" FOREIGN KEY ("users_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_media_fk" FOREIGN KEY ("media_id") REFERENCES "public"."media"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_services_fk" FOREIGN KEY ("services_id") REFERENCES "public"."services"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_categories_fk" FOREIGN KEY ("categories_id") REFERENCES "public"."categories"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_posts_fk" FOREIGN KEY ("posts_id") REFERENCES "public"."posts"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_team_members_fk" FOREIGN KEY ("team_members_id") REFERENCES "public"."team_members"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_testimonials_fk" FOREIGN KEY ("testimonials_id") REFERENCES "public"."testimonials"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_faqs_fk" FOREIGN KEY ("faqs_id") REFERENCES "public"."faqs"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_forms_fk" FOREIGN KEY ("forms_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_form_submissions_fk" FOREIGN KEY ("form_submissions_id") REFERENCES "public"."form_submissions"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_preferences_rels" ADD CONSTRAINT "payload_preferences_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."payload_preferences"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "payload_preferences_rels" ADD CONSTRAINT "payload_preferences_rels_users_fk" FOREIGN KEY ("users_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "navigation_items_children" ADD CONSTRAINT "navigation_items_children_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."navigation_items"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "navigation_items" ADD CONSTRAINT "navigation_items_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."navigation"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "footer_columns_links" ADD CONSTRAINT "footer_columns_links_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."footer_columns"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "footer_columns" ADD CONSTRAINT "footer_columns_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."footer"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "footer_legal_links" ADD CONSTRAINT "footer_legal_links_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."footer"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "site_settings_webhooks" ADD CONSTRAINT "site_settings_webhooks_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."site_settings"("id") ON DELETE cascade ON UPDATE no action;
|
||||
ALTER TABLE "site_settings" ADD CONSTRAINT "site_settings_brand_logo_id_media_id_fk" FOREIGN KEY ("brand_logo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "site_settings" ADD CONSTRAINT "site_settings_brand_logo_dark_id_media_id_fk" FOREIGN KEY ("brand_logo_dark_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "site_settings" ADD CONSTRAINT "site_settings_brand_favicon_id_media_id_fk" FOREIGN KEY ("brand_favicon_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
ALTER TABLE "site_settings" ADD CONSTRAINT "site_settings_seo_defaults_default_og_image_id_media_id_fk" FOREIGN KEY ("seo_defaults_default_og_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
||||
CREATE INDEX "users_sessions_order_idx" ON "users_sessions" USING btree ("_order");
|
||||
CREATE INDEX "users_sessions_parent_id_idx" ON "users_sessions" USING btree ("_parent_id");
|
||||
CREATE INDEX "users_updated_at_idx" ON "users" USING btree ("updated_at");
|
||||
CREATE INDEX "users_created_at_idx" ON "users" USING btree ("created_at");
|
||||
CREATE UNIQUE INDEX "users_email_idx" ON "users" USING btree ("email");
|
||||
CREATE INDEX "media_updated_at_idx" ON "media" USING btree ("updated_at");
|
||||
CREATE INDEX "media_created_at_idx" ON "media" USING btree ("created_at");
|
||||
CREATE UNIQUE INDEX "media_filename_idx" ON "media" USING btree ("filename");
|
||||
CREATE INDEX "media_sizes_thumbnail_sizes_thumbnail_filename_idx" ON "media" USING btree ("sizes_thumbnail_filename");
|
||||
CREATE INDEX "media_sizes_card_sizes_card_filename_idx" ON "media" USING btree ("sizes_card_filename");
|
||||
CREATE INDEX "media_sizes_hero_sizes_hero_filename_idx" ON "media" USING btree ("sizes_hero_filename");
|
||||
CREATE INDEX "services_whats_included_order_idx" ON "services_whats_included" USING btree ("_order");
|
||||
CREATE INDEX "services_whats_included_parent_id_idx" ON "services_whats_included" USING btree ("_parent_id");
|
||||
CREATE INDEX "services_who_its_for_order_idx" ON "services_who_its_for" USING btree ("_order");
|
||||
CREATE INDEX "services_who_its_for_parent_id_idx" ON "services_who_its_for" USING btree ("_parent_id");
|
||||
CREATE INDEX "services_how_it_works_order_idx" ON "services_how_it_works" USING btree ("_order");
|
||||
CREATE INDEX "services_how_it_works_parent_id_idx" ON "services_how_it_works" USING btree ("_parent_id");
|
||||
CREATE INDEX "services_faq_order_idx" ON "services_faq" USING btree ("_order");
|
||||
CREATE INDEX "services_faq_parent_id_idx" ON "services_faq" USING btree ("_parent_id");
|
||||
CREATE UNIQUE INDEX "services_slug_idx" ON "services" USING btree ("slug");
|
||||
CREATE INDEX "services_seo_seo_og_image_idx" ON "services" USING btree ("seo_og_image_id");
|
||||
CREATE INDEX "services_updated_at_idx" ON "services" USING btree ("updated_at");
|
||||
CREATE INDEX "services_created_at_idx" ON "services" USING btree ("created_at");
|
||||
CREATE INDEX "services_rels_order_idx" ON "services_rels" USING btree ("order");
|
||||
CREATE INDEX "services_rels_parent_idx" ON "services_rels" USING btree ("parent_id");
|
||||
CREATE INDEX "services_rels_path_idx" ON "services_rels" USING btree ("path");
|
||||
CREATE INDEX "services_rels_testimonials_id_idx" ON "services_rels" USING btree ("testimonials_id");
|
||||
CREATE UNIQUE INDEX "categories_slug_idx" ON "categories" USING btree ("slug");
|
||||
CREATE INDEX "categories_updated_at_idx" ON "categories" USING btree ("updated_at");
|
||||
CREATE INDEX "categories_created_at_idx" ON "categories" USING btree ("created_at");
|
||||
CREATE INDEX "posts_tags_order_idx" ON "posts_tags" USING btree ("_order");
|
||||
CREATE INDEX "posts_tags_parent_id_idx" ON "posts_tags" USING btree ("_parent_id");
|
||||
CREATE UNIQUE INDEX "posts_slug_idx" ON "posts" USING btree ("slug");
|
||||
CREATE INDEX "posts_author_idx" ON "posts" USING btree ("author_id");
|
||||
CREATE INDEX "posts_category_idx" ON "posts" USING btree ("category_id");
|
||||
CREATE INDEX "posts_cover_image_idx" ON "posts" USING btree ("cover_image_id");
|
||||
CREATE INDEX "posts_seo_seo_og_image_idx" ON "posts" USING btree ("seo_og_image_id");
|
||||
CREATE INDEX "posts_updated_at_idx" ON "posts" USING btree ("updated_at");
|
||||
CREATE INDEX "posts_created_at_idx" ON "posts" USING btree ("created_at");
|
||||
CREATE INDEX "team_members_photo_idx" ON "team_members" USING btree ("photo_id");
|
||||
CREATE INDEX "team_members_updated_at_idx" ON "team_members" USING btree ("updated_at");
|
||||
CREATE INDEX "team_members_created_at_idx" ON "team_members" USING btree ("created_at");
|
||||
CREATE INDEX "testimonials_photo_idx" ON "testimonials" USING btree ("photo_id");
|
||||
CREATE INDEX "testimonials_service_idx" ON "testimonials" USING btree ("service_id");
|
||||
CREATE INDEX "testimonials_updated_at_idx" ON "testimonials" USING btree ("updated_at");
|
||||
CREATE INDEX "testimonials_created_at_idx" ON "testimonials" USING btree ("created_at");
|
||||
CREATE INDEX "faqs_service_idx" ON "faqs" USING btree ("service_id");
|
||||
CREATE INDEX "faqs_updated_at_idx" ON "faqs" USING btree ("updated_at");
|
||||
CREATE INDEX "faqs_created_at_idx" ON "faqs" USING btree ("created_at");
|
||||
CREATE INDEX "forms_blocks_checkbox_order_idx" ON "forms_blocks_checkbox" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_checkbox_parent_id_idx" ON "forms_blocks_checkbox" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_checkbox_path_idx" ON "forms_blocks_checkbox" USING btree ("_path");
|
||||
CREATE INDEX "forms_blocks_country_order_idx" ON "forms_blocks_country" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_country_parent_id_idx" ON "forms_blocks_country" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_country_path_idx" ON "forms_blocks_country" USING btree ("_path");
|
||||
CREATE INDEX "forms_blocks_email_order_idx" ON "forms_blocks_email" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_email_parent_id_idx" ON "forms_blocks_email" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_email_path_idx" ON "forms_blocks_email" USING btree ("_path");
|
||||
CREATE INDEX "forms_blocks_message_order_idx" ON "forms_blocks_message" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_message_parent_id_idx" ON "forms_blocks_message" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_message_path_idx" ON "forms_blocks_message" USING btree ("_path");
|
||||
CREATE INDEX "forms_blocks_number_order_idx" ON "forms_blocks_number" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_number_parent_id_idx" ON "forms_blocks_number" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_number_path_idx" ON "forms_blocks_number" USING btree ("_path");
|
||||
CREATE INDEX "forms_blocks_select_options_order_idx" ON "forms_blocks_select_options" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_select_options_parent_id_idx" ON "forms_blocks_select_options" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_select_order_idx" ON "forms_blocks_select" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_select_parent_id_idx" ON "forms_blocks_select" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_select_path_idx" ON "forms_blocks_select" USING btree ("_path");
|
||||
CREATE INDEX "forms_blocks_state_order_idx" ON "forms_blocks_state" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_state_parent_id_idx" ON "forms_blocks_state" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_state_path_idx" ON "forms_blocks_state" USING btree ("_path");
|
||||
CREATE INDEX "forms_blocks_text_order_idx" ON "forms_blocks_text" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_text_parent_id_idx" ON "forms_blocks_text" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_text_path_idx" ON "forms_blocks_text" USING btree ("_path");
|
||||
CREATE INDEX "forms_blocks_textarea_order_idx" ON "forms_blocks_textarea" USING btree ("_order");
|
||||
CREATE INDEX "forms_blocks_textarea_parent_id_idx" ON "forms_blocks_textarea" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_blocks_textarea_path_idx" ON "forms_blocks_textarea" USING btree ("_path");
|
||||
CREATE INDEX "forms_emails_order_idx" ON "forms_emails" USING btree ("_order");
|
||||
CREATE INDEX "forms_emails_parent_id_idx" ON "forms_emails" USING btree ("_parent_id");
|
||||
CREATE INDEX "forms_updated_at_idx" ON "forms" USING btree ("updated_at");
|
||||
CREATE INDEX "forms_created_at_idx" ON "forms" USING btree ("created_at");
|
||||
CREATE INDEX "form_submissions_submission_data_order_idx" ON "form_submissions_submission_data" USING btree ("_order");
|
||||
CREATE INDEX "form_submissions_submission_data_parent_id_idx" ON "form_submissions_submission_data" USING btree ("_parent_id");
|
||||
CREATE INDEX "form_submissions_form_idx" ON "form_submissions" USING btree ("form_id");
|
||||
CREATE INDEX "form_submissions_updated_at_idx" ON "form_submissions" USING btree ("updated_at");
|
||||
CREATE INDEX "form_submissions_created_at_idx" ON "form_submissions" USING btree ("created_at");
|
||||
CREATE UNIQUE INDEX "payload_kv_key_idx" ON "payload_kv" USING btree ("key");
|
||||
CREATE INDEX "payload_locked_documents_global_slug_idx" ON "payload_locked_documents" USING btree ("global_slug");
|
||||
CREATE INDEX "payload_locked_documents_updated_at_idx" ON "payload_locked_documents" USING btree ("updated_at");
|
||||
CREATE INDEX "payload_locked_documents_created_at_idx" ON "payload_locked_documents" USING btree ("created_at");
|
||||
CREATE INDEX "payload_locked_documents_rels_order_idx" ON "payload_locked_documents_rels" USING btree ("order");
|
||||
CREATE INDEX "payload_locked_documents_rels_parent_idx" ON "payload_locked_documents_rels" USING btree ("parent_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_path_idx" ON "payload_locked_documents_rels" USING btree ("path");
|
||||
CREATE INDEX "payload_locked_documents_rels_users_id_idx" ON "payload_locked_documents_rels" USING btree ("users_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_media_id_idx" ON "payload_locked_documents_rels" USING btree ("media_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_services_id_idx" ON "payload_locked_documents_rels" USING btree ("services_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_categories_id_idx" ON "payload_locked_documents_rels" USING btree ("categories_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_posts_id_idx" ON "payload_locked_documents_rels" USING btree ("posts_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_team_members_id_idx" ON "payload_locked_documents_rels" USING btree ("team_members_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_testimonials_id_idx" ON "payload_locked_documents_rels" USING btree ("testimonials_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_faqs_id_idx" ON "payload_locked_documents_rels" USING btree ("faqs_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_forms_id_idx" ON "payload_locked_documents_rels" USING btree ("forms_id");
|
||||
CREATE INDEX "payload_locked_documents_rels_form_submissions_id_idx" ON "payload_locked_documents_rels" USING btree ("form_submissions_id");
|
||||
CREATE INDEX "payload_preferences_key_idx" ON "payload_preferences" USING btree ("key");
|
||||
CREATE INDEX "payload_preferences_updated_at_idx" ON "payload_preferences" USING btree ("updated_at");
|
||||
CREATE INDEX "payload_preferences_created_at_idx" ON "payload_preferences" USING btree ("created_at");
|
||||
CREATE INDEX "payload_preferences_rels_order_idx" ON "payload_preferences_rels" USING btree ("order");
|
||||
CREATE INDEX "payload_preferences_rels_parent_idx" ON "payload_preferences_rels" USING btree ("parent_id");
|
||||
CREATE INDEX "payload_preferences_rels_path_idx" ON "payload_preferences_rels" USING btree ("path");
|
||||
CREATE INDEX "payload_preferences_rels_users_id_idx" ON "payload_preferences_rels" USING btree ("users_id");
|
||||
CREATE INDEX "payload_migrations_updated_at_idx" ON "payload_migrations" USING btree ("updated_at");
|
||||
CREATE INDEX "payload_migrations_created_at_idx" ON "payload_migrations" USING btree ("created_at");
|
||||
CREATE INDEX "navigation_items_children_order_idx" ON "navigation_items_children" USING btree ("_order");
|
||||
CREATE INDEX "navigation_items_children_parent_id_idx" ON "navigation_items_children" USING btree ("_parent_id");
|
||||
CREATE INDEX "navigation_items_order_idx" ON "navigation_items" USING btree ("_order");
|
||||
CREATE INDEX "navigation_items_parent_id_idx" ON "navigation_items" USING btree ("_parent_id");
|
||||
CREATE INDEX "footer_columns_links_order_idx" ON "footer_columns_links" USING btree ("_order");
|
||||
CREATE INDEX "footer_columns_links_parent_id_idx" ON "footer_columns_links" USING btree ("_parent_id");
|
||||
CREATE INDEX "footer_columns_order_idx" ON "footer_columns" USING btree ("_order");
|
||||
CREATE INDEX "footer_columns_parent_id_idx" ON "footer_columns" USING btree ("_parent_id");
|
||||
CREATE INDEX "footer_legal_links_order_idx" ON "footer_legal_links" USING btree ("_order");
|
||||
CREATE INDEX "footer_legal_links_parent_id_idx" ON "footer_legal_links" USING btree ("_parent_id");
|
||||
CREATE INDEX "site_settings_webhooks_order_idx" ON "site_settings_webhooks" USING btree ("_order");
|
||||
CREATE INDEX "site_settings_webhooks_parent_id_idx" ON "site_settings_webhooks" USING btree ("_parent_id");
|
||||
CREATE INDEX "site_settings_brand_brand_logo_idx" ON "site_settings" USING btree ("brand_logo_id");
|
||||
CREATE INDEX "site_settings_brand_brand_logo_dark_idx" ON "site_settings" USING btree ("brand_logo_dark_id");
|
||||
CREATE INDEX "site_settings_brand_brand_favicon_idx" ON "site_settings" USING btree ("brand_favicon_id");
|
||||
CREATE INDEX "site_settings_seo_defaults_seo_defaults_default_og_image_idx" ON "site_settings" USING btree ("seo_defaults_default_og_image_id");`);
|
||||
}
|
||||
|
||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
||||
await db.execute(sql`
|
||||
DROP TABLE "users_sessions" CASCADE;
|
||||
DROP TABLE "users" CASCADE;
|
||||
DROP TABLE "media" CASCADE;
|
||||
DROP TABLE "services_whats_included" CASCADE;
|
||||
DROP TABLE "services_who_its_for" CASCADE;
|
||||
DROP TABLE "services_how_it_works" CASCADE;
|
||||
DROP TABLE "services_faq" CASCADE;
|
||||
DROP TABLE "services" CASCADE;
|
||||
DROP TABLE "services_rels" CASCADE;
|
||||
DROP TABLE "categories" CASCADE;
|
||||
DROP TABLE "posts_tags" CASCADE;
|
||||
DROP TABLE "posts" CASCADE;
|
||||
DROP TABLE "team_members" CASCADE;
|
||||
DROP TABLE "testimonials" CASCADE;
|
||||
DROP TABLE "faqs" CASCADE;
|
||||
DROP TABLE "forms_blocks_checkbox" CASCADE;
|
||||
DROP TABLE "forms_blocks_country" CASCADE;
|
||||
DROP TABLE "forms_blocks_email" CASCADE;
|
||||
DROP TABLE "forms_blocks_message" CASCADE;
|
||||
DROP TABLE "forms_blocks_number" CASCADE;
|
||||
DROP TABLE "forms_blocks_select_options" CASCADE;
|
||||
DROP TABLE "forms_blocks_select" CASCADE;
|
||||
DROP TABLE "forms_blocks_state" CASCADE;
|
||||
DROP TABLE "forms_blocks_text" CASCADE;
|
||||
DROP TABLE "forms_blocks_textarea" CASCADE;
|
||||
DROP TABLE "forms_emails" CASCADE;
|
||||
DROP TABLE "forms" CASCADE;
|
||||
DROP TABLE "form_submissions_submission_data" CASCADE;
|
||||
DROP TABLE "form_submissions" CASCADE;
|
||||
DROP TABLE "payload_kv" CASCADE;
|
||||
DROP TABLE "payload_locked_documents" CASCADE;
|
||||
DROP TABLE "payload_locked_documents_rels" CASCADE;
|
||||
DROP TABLE "payload_preferences" CASCADE;
|
||||
DROP TABLE "payload_preferences_rels" CASCADE;
|
||||
DROP TABLE "payload_migrations" CASCADE;
|
||||
DROP TABLE "navigation_items_children" CASCADE;
|
||||
DROP TABLE "navigation_items" CASCADE;
|
||||
DROP TABLE "navigation" CASCADE;
|
||||
DROP TABLE "footer_columns_links" CASCADE;
|
||||
DROP TABLE "footer_columns" CASCADE;
|
||||
DROP TABLE "footer_legal_links" CASCADE;
|
||||
DROP TABLE "footer" CASCADE;
|
||||
DROP TABLE "site_settings_webhooks" CASCADE;
|
||||
DROP TABLE "site_settings" CASCADE;
|
||||
DROP TYPE "public"."enum_users_role";
|
||||
DROP TYPE "public"."enum_services_who_its_for_audience";
|
||||
DROP TYPE "public"."enum_services_icon";
|
||||
DROP TYPE "public"."enum_services_status";
|
||||
DROP TYPE "public"."enum_posts_status";
|
||||
DROP TYPE "public"."enum_testimonials_business_type";
|
||||
DROP TYPE "public"."enum_testimonials_rating";
|
||||
DROP TYPE "public"."enum_testimonials_source";
|
||||
DROP TYPE "public"."enum_forms_confirmation_type";
|
||||
DROP TYPE "public"."enum_site_settings_chat_bot_chat_bot_mode";`);
|
||||
}
|
||||
9
src/migrations/index.ts
Normal file
9
src/migrations/index.ts
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import * as migration_20260223_152652 from './20260223_152652';
|
||||
|
||||
export const migrations = [
|
||||
{
|
||||
up: migration_20260223_152652.up,
|
||||
down: migration_20260223_152652.down,
|
||||
name: '20260223_152652',
|
||||
},
|
||||
];
|
||||
|
|
@ -6,20 +6,20 @@ import { postgresAdapter } from '@payloadcms/db-postgres';
|
|||
import { lexicalEditor } from '@payloadcms/richtext-lexical';
|
||||
import { formBuilderPlugin } from '@payloadcms/plugin-form-builder';
|
||||
|
||||
// Collections
|
||||
import { Users } from './payload/collections/Users';
|
||||
import { Media } from './payload/collections/Media';
|
||||
import { Services } from './payload/collections/Services';
|
||||
import { Categories } from './payload/collections/Categories';
|
||||
import { Posts } from './payload/collections/Posts';
|
||||
import { TeamMembers } from './payload/collections/TeamMembers';
|
||||
import { Testimonials } from './payload/collections/Testimonials';
|
||||
import { FAQs } from './payload/collections/FAQs';
|
||||
// Collections — .ts extensions required for tsx ESM resolution (migrate:create)
|
||||
import { Users } from './payload/collections/Users.ts';
|
||||
import { Media } from './payload/collections/Media.ts';
|
||||
import { Services } from './payload/collections/Services.ts';
|
||||
import { Categories } from './payload/collections/Categories.ts';
|
||||
import { Posts } from './payload/collections/Posts.ts';
|
||||
import { TeamMembers } from './payload/collections/TeamMembers.ts';
|
||||
import { Testimonials } from './payload/collections/Testimonials.ts';
|
||||
import { FAQs } from './payload/collections/FAQs.ts';
|
||||
|
||||
// Globals
|
||||
import { Navigation } from './payload/globals/Navigation';
|
||||
import { Footer } from './payload/globals/Footer';
|
||||
import { SiteSettings } from './payload/globals/SiteSettings';
|
||||
import { Navigation } from './payload/globals/Navigation.ts';
|
||||
import { Footer } from './payload/globals/Footer.ts';
|
||||
import { SiteSettings } from './payload/globals/SiteSettings.ts';
|
||||
|
||||
const filename = fileURLToPath(import.meta.url);
|
||||
const dirname = path.dirname(filename);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue