Files
domain-wall/packages/airportsdb/migrations/0000_friendly_thunderbolts.sql
2025-10-20 17:07:41 +03:00

30 lines
1.3 KiB
SQL

CREATE TABLE IF NOT EXISTS "airport" (
"id" serial PRIMARY KEY NOT NULL,
"type" varchar(64) NOT NULL,
"name" varchar(128) NOT NULL,
"gps_code" varchar(64) NOT NULL,
"ident" varchar(128),
"latitude_deg" numeric(10, 2),
"longitude_deg" numeric(10, 2),
"elevation_ft" numeric(10, 2),
"continent" varchar(64),
"country" varchar(172),
"iso_country" varchar(4) NOT NULL,
"iso_region" varchar(64) NOT NULL,
"municipality" varchar(64),
"scheduled_service" varchar(64),
"iata_code" varchar(16) NOT NULL,
"local_code" varchar(16) NOT NULL,
"created_at" timestamp DEFAULT now(),
"updated_at" timestamp DEFAULT now(),
"search_vector" "tsvector" GENERATED ALWAYS AS (
setweight(to_tsvector('english', coalesce("airport"."name", '')), 'A') ||
setweight(to_tsvector('english', coalesce("airport"."iata_code", '')), 'A') ||
setweight(to_tsvector('english', coalesce("airport"."municipality", '')), 'B') ||
setweight(to_tsvector('english', coalesce("airport"."country", '')), 'C')
) STORED
);
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "name_idx" ON "airport" USING btree ("name");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "gps_code_idx" ON "airport" USING btree ("gps_code");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "search_vector_idx" ON "airport" USING gin ("search_vector");