feat(阶段1): drizzle schema 从本地库生成并剪掉 Django 框架表

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-06 20:45:51 -06:00
co-authored by Claude Opus 5
parent 9bfe629cd7
commit f635737453
10 changed files with 5536 additions and 6 deletions
+453
View File
@@ -0,0 +1,453 @@
-- Current sql file was generated after introspecting the database
-- If you want to run this migration please uncomment this code before executing migrations
/*
CREATE SEQUENCE "public"."auth_group_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint
CREATE SEQUENCE "public"."auth_group_permissions_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint
CREATE SEQUENCE "public"."auth_permission_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint
CREATE SEQUENCE "public"."django_content_type_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint
CREATE SEQUENCE "public"."django_migrations_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint
CREATE TABLE "ai_analysis" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "ai_analysis_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"provider" text NOT NULL,
"data" jsonb NOT NULL,
"system_prompt" text NOT NULL,
"user_prompt" text NOT NULL,
"analysis" text NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"user_id" integer NOT NULL,
"model" text NOT NULL,
"is_pinned" boolean NOT NULL
);
--> statement-breakpoint
CREATE TABLE "announcement" (
"id" serial PRIMARY KEY NOT NULL,
"title" text NOT NULL,
"content" text NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"last_update_time" timestamp with time zone NOT NULL,
"visible" boolean NOT NULL,
"created_by_id" integer NOT NULL,
"tag" text NOT NULL,
"top" boolean NOT NULL
);
--> statement-breakpoint
CREATE TABLE "achievement" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "achievement_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"name" text NOT NULL,
"description" text NOT NULL,
"icon" text NOT NULL,
"rarity" text NOT NULL,
"hidden" boolean DEFAULT false NOT NULL,
"metric" text NOT NULL,
"operator" text NOT NULL,
"threshold" integer NOT NULL,
"visible" boolean DEFAULT true NOT NULL,
"unlock_count" integer DEFAULT 0 NOT NULL,
"order" integer DEFAULT 0 NOT NULL,
"create_time" timestamp with time zone NOT NULL
);
--> statement-breakpoint
CREATE TABLE "contest" (
"id" serial PRIMARY KEY NOT NULL,
"title" text NOT NULL,
"description" text NOT NULL,
"password" text,
"start_time" timestamp with time zone NOT NULL,
"end_time" timestamp with time zone NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"last_update_time" timestamp with time zone NOT NULL,
"visible" boolean NOT NULL,
"created_by_id" integer NOT NULL,
"allowed_ip_ranges" jsonb NOT NULL,
"tag" text NOT NULL
);
--> statement-breakpoint
CREATE TABLE "contest_announcement" (
"id" serial PRIMARY KEY NOT NULL,
"title" text NOT NULL,
"content" text NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"contest_id" integer NOT NULL,
"created_by_id" integer NOT NULL,
"visible" boolean NOT NULL
);
--> statement-breakpoint
CREATE TABLE "flowchart_submission" (
"id" text PRIMARY KEY NOT NULL,
"mermaid_code" text NOT NULL,
"flowchart_data" jsonb NOT NULL,
"status" integer NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"ai_score" double precision,
"ai_grade" varchar(10),
"ai_feedback" text,
"ai_suggestions" text,
"ai_criteria_details" jsonb NOT NULL,
"ai_provider" varchar(50) NOT NULL,
"ai_model" varchar(50) NOT NULL,
"processing_time" double precision,
"evaluation_time" timestamp with time zone,
"problem_id" integer NOT NULL,
"user_id" integer NOT NULL
);
--> statement-breakpoint
CREATE TABLE "message" (
"id" integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "message_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
"message" text NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"recipient_id" integer NOT NULL,
"sender_id" integer NOT NULL,
"submission_id" text NOT NULL
);
--> statement-breakpoint
CREATE TABLE "judge_server" (
"id" serial PRIMARY KEY NOT NULL,
"hostname" text NOT NULL,
"ip" text,
"judger_version" text NOT NULL,
"cpu_core" integer NOT NULL,
"memory_usage" double precision NOT NULL,
"cpu_usage" double precision NOT NULL,
"last_heartbeat" timestamp with time zone NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"task_number" integer NOT NULL,
"service_url" text,
"is_disabled" boolean NOT NULL
);
--> statement-breakpoint
CREATE TABLE "exercise" (
"id" integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "exercise_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
"type" varchar(16) NOT NULL,
"data" jsonb NOT NULL,
"order" integer NOT NULL,
"created_at" timestamp with time zone NOT NULL,
"tutorial_id" integer NOT NULL
);
--> statement-breakpoint
CREATE TABLE "options_sysoptions" (
"id" serial PRIMARY KEY NOT NULL,
"key" text NOT NULL,
"value" jsonb NOT NULL,
CONSTRAINT "options_sysoptions_key_key" UNIQUE("key")
);
--> statement-breakpoint
CREATE TABLE "problemset" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"title" text NOT NULL,
"description" text NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"last_update_time" timestamp with time zone NOT NULL,
"visible" boolean NOT NULL,
"difficulty" text NOT NULL,
"status" text NOT NULL,
"created_by_id" integer NOT NULL,
"end_time" timestamp with time zone
);
--> statement-breakpoint
CREATE TABLE "problemset_problem" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_problem_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"order" integer NOT NULL,
"is_required" boolean NOT NULL,
"score" integer NOT NULL,
"hint" text,
"problem_id" integer NOT NULL,
"problemset_id" bigint NOT NULL,
CONSTRAINT "unique_problemset_problem" UNIQUE("problem_id","problemset_id")
);
--> statement-breakpoint
CREATE TABLE "problemset_progress" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_progress_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"join_time" timestamp with time zone NOT NULL,
"complete_time" timestamp with time zone,
"is_completed" boolean NOT NULL,
"progress_percentage" double precision NOT NULL,
"completed_problems_count" integer NOT NULL,
"total_problems_count" integer NOT NULL,
"total_score" integer NOT NULL,
"progress_detail" jsonb NOT NULL,
"problemset_id" bigint NOT NULL,
"user_id" integer NOT NULL,
CONSTRAINT "unique_problemset_progress_user" UNIQUE("problemset_id","user_id")
);
--> statement-breakpoint
CREATE TABLE "problemset_submission" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_submission_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"problem_id" integer NOT NULL,
"problemset_id" bigint NOT NULL,
"submission_id" text NOT NULL,
"user_id" integer NOT NULL
);
--> statement-breakpoint
CREATE TABLE "reaction" (
"id" integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "reaction_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
"type" varchar(20) NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"problem_id" integer NOT NULL,
"user_id" integer NOT NULL,
CONSTRAINT "reaction_problem_user_unique" UNIQUE("problem_id","user_id")
);
--> statement-breakpoint
CREATE TABLE "problem" (
"id" serial PRIMARY KEY NOT NULL,
"title" text NOT NULL,
"description" text NOT NULL,
"input_description" text NOT NULL,
"output_description" text NOT NULL,
"samples" jsonb NOT NULL,
"test_case_id" text NOT NULL,
"test_case_score" jsonb NOT NULL,
"hint" text,
"languages" jsonb NOT NULL,
"template" jsonb NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"last_update_time" timestamp with time zone,
"time_limit" integer NOT NULL,
"memory_limit" integer NOT NULL,
"visible" boolean DEFAULT true NOT NULL,
"difficulty" text NOT NULL,
"source" text,
"submission_number" bigint DEFAULT 0 NOT NULL,
"accepted_number" bigint DEFAULT 0 NOT NULL,
"created_by_id" integer NOT NULL,
"_id" text NOT NULL,
"statistic_info" jsonb DEFAULT '{}'::jsonb NOT NULL,
"contest_id" integer,
"is_public" boolean DEFAULT false NOT NULL,
"share_submission" boolean DEFAULT false NOT NULL,
"prompt" text,
"answers" jsonb,
"allow_flowchart" boolean DEFAULT false NOT NULL,
"flowchart_data" jsonb DEFAULT '{}'::jsonb NOT NULL,
"flowchart_hint" text,
"mermaid_code" text,
"show_flowchart" boolean DEFAULT false NOT NULL,
"ast_rules" jsonb,
"sql_config" jsonb,
"sql_display" jsonb,
CONSTRAINT "unique_problem_id_contest" UNIQUE("_id","contest_id")
);
--> statement-breakpoint
CREATE TABLE "problem_tags" (
"id" serial PRIMARY KEY NOT NULL,
"problem_id" integer NOT NULL,
"problemtag_id" integer NOT NULL,
CONSTRAINT "problem_tags_problem_id_problemtag_id_318459d1_uniq" UNIQUE("problem_id","problemtag_id")
);
--> statement-breakpoint
CREATE TABLE "problem_tag" (
"id" serial PRIMARY KEY NOT NULL,
"name" text NOT NULL
);
--> statement-breakpoint
CREATE TABLE "submission" (
"id" text PRIMARY KEY NOT NULL,
"contest_id" integer,
"problem_id" integer NOT NULL,
"create_time" timestamp with time zone NOT NULL,
"user_id" integer NOT NULL,
"code" text NOT NULL,
"result" integer DEFAULT 6 NOT NULL,
"info" jsonb DEFAULT '{}'::jsonb NOT NULL,
"language" text NOT NULL,
"shared" boolean DEFAULT false NOT NULL,
"statistic_info" jsonb DEFAULT '{}'::jsonb NOT NULL,
"username" text NOT NULL,
"ip" text
);
--> statement-breakpoint
CREATE TABLE "tutorial" (
"id" integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "tutorial_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
"title" varchar(128) NOT NULL,
"content" text NOT NULL,
"created_at" timestamp with time zone NOT NULL,
"updated_at" timestamp with time zone NOT NULL,
"is_public" boolean NOT NULL,
"order" integer NOT NULL,
"created_by_id" integer NOT NULL,
"code" text,
"type" varchar(10) NOT NULL
);
--> statement-breakpoint
CREATE TABLE "user_stat" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "user_stat_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"metrics" jsonb DEFAULT '{}'::jsonb NOT NULL,
"update_time" timestamp with time zone NOT NULL,
"user_id" integer NOT NULL,
CONSTRAINT "user_stat_user_id_key" UNIQUE("user_id")
);
--> statement-breakpoint
CREATE TABLE "user_achievement" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "user_achievement_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"unlock_time" timestamp with time zone NOT NULL,
"backfilled" boolean DEFAULT false NOT NULL,
"notified" boolean DEFAULT false NOT NULL,
"achievement_id" bigint NOT NULL,
"user_id" integer NOT NULL,
CONSTRAINT "unique_user_achievement" UNIQUE("achievement_id","user_id")
);
--> statement-breakpoint
CREATE TABLE "user_badge" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "user_badge_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"earned_time" timestamp with time zone NOT NULL,
"badge_id" bigint NOT NULL,
"user_id" integer NOT NULL,
CONSTRAINT "unique_user_badge" UNIQUE("badge_id","user_id")
);
--> statement-breakpoint
CREATE TABLE "user_profile" (
"id" serial PRIMARY KEY NOT NULL,
"acm_problems_status" jsonb DEFAULT '{}'::jsonb NOT NULL,
"avatar" text NOT NULL,
"blog" varchar(200),
"mood" text,
"accepted_number" integer DEFAULT 0 NOT NULL,
"submission_number" integer DEFAULT 0 NOT NULL,
"github" text,
"school" text,
"major" text,
"user_id" integer NOT NULL,
"real_name" text,
"language" text,
CONSTRAINT "user_profile_user_id_key" UNIQUE("user_id")
);
--> statement-breakpoint
CREATE TABLE "acm_contest_rank" (
"id" serial PRIMARY KEY NOT NULL,
"submission_number" integer DEFAULT 0 NOT NULL,
"accepted_number" integer DEFAULT 0 NOT NULL,
"total_time" integer DEFAULT 0 NOT NULL,
"submission_info" jsonb DEFAULT '{}'::jsonb NOT NULL,
"contest_id" integer NOT NULL,
"user_id" integer NOT NULL,
CONSTRAINT "unique_acm_rank_user_contest" UNIQUE("contest_id","user_id")
);
--> statement-breakpoint
CREATE TABLE "user" (
"id" serial PRIMARY KEY NOT NULL,
"password" varchar(128) NOT NULL,
"last_login" timestamp with time zone,
"username" text NOT NULL,
"email" text,
"create_time" timestamp with time zone,
"admin_type" text NOT NULL,
"auth_token" text,
"open_api" boolean DEFAULT false NOT NULL,
"open_api_appkey" text,
"is_disabled" boolean DEFAULT false NOT NULL,
"problem_permission" text NOT NULL,
"session_keys" jsonb DEFAULT '[]'::jsonb NOT NULL,
"raw_password" varchar(20),
"class_name" text,
CONSTRAINT "user_username_key" UNIQUE("username")
);
--> statement-breakpoint
CREATE TABLE "problemset_badge" (
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_badge_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1),
"name" text NOT NULL,
"description" text NOT NULL,
"icon" text NOT NULL,
"condition_type" text NOT NULL,
"condition_value" integer NOT NULL,
"problemset_id" bigint NOT NULL
);
--> statement-breakpoint
ALTER TABLE "ai_analysis" ADD CONSTRAINT "ai_analysis_user_id_3aa23011_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "announcement" ADD CONSTRAINT "announcement_created_by_id_359ccf50_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "contest" ADD CONSTRAINT "contest_created_by_id_a763ca7e_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "contest_announcement" ADD CONSTRAINT "contest_announcement_contest_id_a8cb419f_fk_contest_id" FOREIGN KEY ("contest_id") REFERENCES "public"."contest"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "contest_announcement" ADD CONSTRAINT "contest_announcement_created_by_id_469a14ce_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "flowchart_submission" ADD CONSTRAINT "flowchart_submission_problem_id_8551edbf_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "flowchart_submission" ADD CONSTRAINT "flowchart_submission_user_id_225c83e8_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "message" ADD CONSTRAINT "message_recipient_id_2aa5dd76_fk_user_id" FOREIGN KEY ("recipient_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "message" ADD CONSTRAINT "message_sender_id_a2a2e825_fk_user_id" FOREIGN KEY ("sender_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "message" ADD CONSTRAINT "message_submission_id_2fdf8a47_fk_submission_id" FOREIGN KEY ("submission_id") REFERENCES "public"."submission"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "exercise" ADD CONSTRAINT "exercise_tutorial_id_6fd04055_fk_tutorial_id" FOREIGN KEY ("tutorial_id") REFERENCES "public"."tutorial"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset" ADD CONSTRAINT "problemset_created_by_id_01b5197f_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_problem" ADD CONSTRAINT "problemset_problem_problem_id_fff2d686_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_problem" ADD CONSTRAINT "problemset_problem_problemset_id_350d17fb_fk_problemset_id" FOREIGN KEY ("problemset_id") REFERENCES "public"."problemset"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_progress" ADD CONSTRAINT "problemset_progress_problemset_id_20a9632e_fk_problemset_id" FOREIGN KEY ("problemset_id") REFERENCES "public"."problemset"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_progress" ADD CONSTRAINT "problemset_progress_user_id_c8041a80_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_submission" ADD CONSTRAINT "problemset_submission_problem_id_5629b105_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_submission" ADD CONSTRAINT "problemset_submission_problemset_id_85290e17_fk_problemset_id" FOREIGN KEY ("problemset_id") REFERENCES "public"."problemset"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_submission" ADD CONSTRAINT "problemset_submission_submission_id_78e2b807_fk_submission_id" FOREIGN KEY ("submission_id") REFERENCES "public"."submission"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_submission" ADD CONSTRAINT "problemset_submission_user_id_915fc9c6_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "reaction" ADD CONSTRAINT "reaction_problem_id_a7f3b9f3_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "reaction" ADD CONSTRAINT "reaction_user_id_cfa7f469_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problem" ADD CONSTRAINT "problem_contest_id_328e013a_fk_contest_id" FOREIGN KEY ("contest_id") REFERENCES "public"."contest"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problem" ADD CONSTRAINT "problem_created_by_id_cb362143_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problem_tags" ADD CONSTRAINT "problem_tags_problem_id_866ecb8d_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problem_tags" ADD CONSTRAINT "problem_tags_problemtag_id_72d20571_fk_problem_tag_id" FOREIGN KEY ("problemtag_id") REFERENCES "public"."problem_tag"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "submission" ADD CONSTRAINT "submission_contest_id_775716d5_fk_contest_id" FOREIGN KEY ("contest_id") REFERENCES "public"."contest"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "submission" ADD CONSTRAINT "submission_problem_id_76847b55_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "tutorial" ADD CONSTRAINT "tutorial_created_by_id_07973cab_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user_stat" ADD CONSTRAINT "user_stat_user_id_73337fc0_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user_achievement" ADD CONSTRAINT "user_achievement_achievement_id_29db600d_fk_achievement_id" FOREIGN KEY ("achievement_id") REFERENCES "public"."achievement"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user_achievement" ADD CONSTRAINT "user_achievement_user_id_b8ec7d6a_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user_badge" ADD CONSTRAINT "user_badge_badge_id_92a983e9_fk_problemset_badge_id" FOREIGN KEY ("badge_id") REFERENCES "public"."problemset_badge"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user_badge" ADD CONSTRAINT "user_badge_user_id_a286d718_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user_profile" ADD CONSTRAINT "user_profile_user_id_8fdce8e2_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "acm_contest_rank" ADD CONSTRAINT "acm_contest_rank_contest_id_21030ccd_fk_contest_id" FOREIGN KEY ("contest_id") REFERENCES "public"."contest"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "acm_contest_rank" ADD CONSTRAINT "acm_contest_rank_user_id_40391ab2_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "problemset_badge" ADD CONSTRAINT "problemset_badge_problemset_id_6cb6c74f_fk_problemset_id" FOREIGN KEY ("problemset_id") REFERENCES "public"."problemset"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
CREATE INDEX "ai_analysis_user_id_3aa23011" ON "ai_analysis" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "announcement_created_by_id_359ccf50" ON "announcement" USING btree ("created_by_id" int4_ops);--> statement-breakpoint
CREATE INDEX "announcement_list_idx" ON "announcement" USING btree ("visible" bool_ops,"top" bool_ops,"create_time" bool_ops);--> statement-breakpoint
CREATE INDEX "contest_created_by_id_a763ca7e" ON "contest" USING btree ("created_by_id" int4_ops);--> statement-breakpoint
CREATE INDEX "contest_announcement_contest_id_a8cb419f" ON "contest_announcement" USING btree ("contest_id" int4_ops);--> statement-breakpoint
CREATE INDEX "contest_announcement_created_by_id_469a14ce" ON "contest_announcement" USING btree ("created_by_id" int4_ops);--> statement-breakpoint
CREATE INDEX "flowchart_problem_time_idx" ON "flowchart_submission" USING btree ("problem_id" int4_ops,"create_time" int4_ops);--> statement-breakpoint
CREATE INDEX "flowchart_status_idx" ON "flowchart_submission" USING btree ("status" int4_ops);--> statement-breakpoint
CREATE INDEX "flowchart_submission_id_0dbfc4f9_like" ON "flowchart_submission" USING btree ("id" text_pattern_ops);--> statement-breakpoint
CREATE INDEX "flowchart_submission_problem_id_8551edbf" ON "flowchart_submission" USING btree ("problem_id" int4_ops);--> statement-breakpoint
CREATE INDEX "flowchart_submission_user_id_225c83e8" ON "flowchart_submission" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "flowchart_user_time_idx" ON "flowchart_submission" USING btree ("user_id" int4_ops,"create_time" int4_ops);--> statement-breakpoint
CREATE INDEX "message_recipient_id_2aa5dd76" ON "message" USING btree ("recipient_id" int4_ops);--> statement-breakpoint
CREATE INDEX "message_recipient_time_idx" ON "message" USING btree ("recipient_id" timestamptz_ops,"create_time" int4_ops);--> statement-breakpoint
CREATE INDEX "message_sender_id_a2a2e825" ON "message" USING btree ("sender_id" int4_ops);--> statement-breakpoint
CREATE INDEX "message_submission_id_2fdf8a47" ON "message" USING btree ("submission_id" text_ops);--> statement-breakpoint
CREATE INDEX "message_submission_id_2fdf8a47_like" ON "message" USING btree ("submission_id" text_pattern_ops);--> statement-breakpoint
CREATE INDEX "exercise_tutorial_id_6fd04055" ON "exercise" USING btree ("tutorial_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problemset_created_by_id_01b5197f" ON "problemset" USING btree ("created_by_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problemset_problem_problem_id_fff2d686" ON "problemset_problem" USING btree ("problem_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problemset_problem_problemset_id_350d17fb" ON "problemset_problem" USING btree ("problemset_id" int8_ops);--> statement-breakpoint
CREATE INDEX "problemset_progress_problemset_id_20a9632e" ON "problemset_progress" USING btree ("problemset_id" int8_ops);--> statement-breakpoint
CREATE INDEX "problemset_progress_user_id_c8041a80" ON "problemset_progress" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problemset__problem_1f39fa_idx" ON "problemset_submission" USING btree ("problemset_id" int4_ops,"user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problemset__problem_22f053_idx" ON "problemset_submission" USING btree ("problemset_id" int8_ops,"problem_id" int8_ops);--> statement-breakpoint
CREATE INDEX "problemset__user_id_2f1501_idx" ON "problemset_submission" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problemset_submission_problem_id_5629b105" ON "problemset_submission" USING btree ("problem_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problemset_submission_problemset_id_85290e17" ON "problemset_submission" USING btree ("problemset_id" int8_ops);--> statement-breakpoint
CREATE INDEX "problemset_submission_submission_id_78e2b807" ON "problemset_submission" USING btree ("submission_id" text_ops);--> statement-breakpoint
CREATE INDEX "problemset_submission_submission_id_78e2b807_like" ON "problemset_submission" USING btree ("submission_id" text_pattern_ops);--> statement-breakpoint
CREATE INDEX "problemset_submission_user_id_915fc9c6" ON "problemset_submission" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "reaction_problem_id_a7f3b9f3" ON "reaction" USING btree ("problem_id" int4_ops);--> statement-breakpoint
CREATE INDEX "reaction_problem_type_idx" ON "reaction" USING btree ("problem_id" int4_ops,"type" int4_ops);--> statement-breakpoint
CREATE INDEX "reaction_user_id_cfa7f469" ON "reaction" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problem__id_919b1d80" ON "problem" USING btree ("_id" text_ops);--> statement-breakpoint
CREATE INDEX "problem_contest_id_328e013a" ON "problem" USING btree ("contest_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problem_contest_visible_idx" ON "problem" USING btree ("contest_id" bool_ops,"visible" int4_ops);--> statement-breakpoint
CREATE INDEX "problem_created_by_id_cb362143" ON "problem" USING btree ("created_by_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problem_visible_idx" ON "problem" USING btree ("visible" bool_ops);--> statement-breakpoint
CREATE INDEX "problem_tags_problem_id_866ecb8d" ON "problem_tags" USING btree ("problem_id" int4_ops);--> statement-breakpoint
CREATE INDEX "problem_tags_problemtag_id_72d20571" ON "problem_tags" USING btree ("problemtag_id" int4_ops);--> statement-breakpoint
CREATE UNIQUE INDEX "problem_tag_name_ci_unique" ON "problem_tag" USING btree (lower(name) text_ops);--> statement-breakpoint
CREATE INDEX "contest_create_time_idx" ON "submission" USING btree ("contest_id" timestamptz_ops,"create_time" int4_ops);--> statement-breakpoint
CREATE INDEX "problem_user_idx" ON "submission" USING btree ("problem_id" int4_ops,"user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "submission_contest_id_775716d5" ON "submission" USING btree ("contest_id" int4_ops);--> statement-breakpoint
CREATE INDEX "submission_problem_id_76847b55" ON "submission" USING btree ("problem_id" int4_ops);--> statement-breakpoint
CREATE INDEX "submission_result_37e2f67a" ON "submission" USING btree ("result" int4_ops);--> statement-breakpoint
CREATE INDEX "submission_user_id_3779a8c1" ON "submission" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "user_create_time_idx" ON "submission" USING btree ("user_id" int4_ops,"create_time" timestamptz_ops);--> statement-breakpoint
CREATE INDEX "tutorial_created_by_id_07973cab" ON "tutorial" USING btree ("created_by_id" int4_ops);--> statement-breakpoint
CREATE INDEX "user_achievement_achievement_id_29db600d" ON "user_achievement" USING btree ("achievement_id" int8_ops);--> statement-breakpoint
CREATE INDEX "user_achievement_user_id_b8ec7d6a" ON "user_achievement" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "user_achv_notified_idx" ON "user_achievement" USING btree ("user_id" int4_ops,"notified" bool_ops);--> statement-breakpoint
CREATE INDEX "user_achv_time_idx" ON "user_achievement" USING btree ("user_id" int4_ops,"unlock_time" timestamptz_ops);--> statement-breakpoint
CREATE INDEX "user_badge_badge_id_92a983e9" ON "user_badge" USING btree ("badge_id" int8_ops);--> statement-breakpoint
CREATE INDEX "user_badge_user_id_a286d718" ON "user_badge" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "acm_contest_rank_contest_id_21030ccd" ON "acm_contest_rank" USING btree ("contest_id" int4_ops);--> statement-breakpoint
CREATE INDEX "acm_contest_rank_user_id_40391ab2" ON "acm_contest_rank" USING btree ("user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "acm_rank_contest_user_idx" ON "acm_contest_rank" USING btree ("contest_id" int4_ops,"user_id" int4_ops);--> statement-breakpoint
CREATE INDEX "acm_rank_order_idx" ON "acm_contest_rank" USING btree ("contest_id" int4_ops,"accepted_number" int4_ops,"total_time" int4_ops);--> statement-breakpoint
CREATE INDEX "problemset_badge_problemset_id_6cb6c74f" ON "problemset_badge" USING btree ("problemset_id" int8_ops);
*/