- Migration (0114): TRUNCATE season_template_sports before adding NOT NULL sport_id column to prevent failure on non-empty tables - findDraftableSportsSeasonBySportId: add orderBy(year DESC, draftOn DESC) so the newest season is returned deterministically when multiple draft windows overlap - leagues/new.tsx loader: build a Map from the already-fetched allSportsSeasons instead of firing N×M per-sport DB queries (eliminates ~30 redundant queries) - schema: add UNIQUE(templateId, sportId) on season_template_sports to prevent duplicate sport entries via concurrent requests - schema: add UNIQUE(name) on season_templates so import merge-mode lookup by name is unambiguous (migration 0115) https://claude.ai/code/session_01CoRLHERakMncbPs877izvw
13 lines
No EOL
757 B
SQL
13 lines
No EOL
757 B
SQL
TRUNCATE TABLE "season_template_sports";
|
|
--> statement-breakpoint
|
|
ALTER TABLE "season_template_sports" DROP CONSTRAINT "season_template_sports_sports_season_id_sports_seasons_id_fk";
|
|
--> statement-breakpoint
|
|
ALTER TABLE "season_template_sports" ADD COLUMN "sport_id" uuid NOT NULL;--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "season_template_sports" ADD CONSTRAINT "season_template_sports_sport_id_sports_id_fk" FOREIGN KEY ("sport_id") REFERENCES "public"."sports"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
ALTER TABLE "season_template_sports" DROP COLUMN IF EXISTS "sports_season_id";--> statement-breakpoint
|
|
ALTER TABLE "season_templates" DROP COLUMN IF EXISTS "year"; |