Files
no-man-sky-wiki/migrations/2025-06-14-100926_init/up.sql
2025-06-17 14:46:48 +02:00

57 lines
1.4 KiB
SQL

CREATE TABLE "icon"(
"id" UUID NOT NULL PRIMARY KEY,
"name" VARCHAR(255) NOT NULL,
"content_type" VARCHAR(255),
"url" VARCHAR(512),
"width" INT4,
"height" INT4,
"state" JSONB
);
CREATE TABLE "resource"(
"id" UUID NOT NULL PRIMARY KEY,
"name" VARCHAR(255) NOT NULL,
"title" VARCHAR(255) NOT NULL,
"url" VARCHAR(512),
"icon" UUID,
"state" JSONB,
FOREIGN KEY ("icon") REFERENCES "icon"("id")
);
CREATE TABLE "recipe"(
"id" UUID NOT NULL PRIMARY KEY,
"resource" UUID NOT NULL,
"recipe_type" VARCHAR(50) NOT NULL,
"duration" INT4 NOT NULL,
"state" JSONB,
FOREIGN KEY ("resource") REFERENCES "resource"("id")
);
CREATE TABLE "ingredient"(
"id" UUID NOT NULL PRIMARY KEY,
"resource" UUID NOT NULL,
"quantity" INT4 NOT NULL,
"state" JSONB,
"recipe" UUID NOT NULL,
FOREIGN KEY ("resource") REFERENCES "resource"("id"),
FOREIGN KEY ("recipe") REFERENCES "recipe"("id")
);
CREATE INDEX IF NOT EXISTS idx_icon_name
ON icon USING btree
(name COLLATE pg_catalog."default" ASC NULLS LAST);
CREATE INDEX IF NOT EXISTS idx_recipe_type
ON recipe USING btree
(recipe_type COLLATE pg_catalog."default" ASC NULLS LAST);
CREATE INDEX IF NOT EXISTS idx_resource_name
ON resource USING btree
(name COLLATE pg_catalog."default" ASC NULLS LAST);
CREATE INDEX IF NOT EXISTS idx_resource_title
ON resource USING btree
(title COLLATE pg_catalog."default" ASC NULLS LAST);