30 lines
1.3 KiB
SQL
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"); |