505 lines
12 KiB
PL/PgSQL
505 lines
12 KiB
PL/PgSQL
-- Downloaded from: https://github.com/littlebunch/graphql-rs/blob/f5169da015094669fd8058c11706bbe68b56c18b/database/pg/up.sql
|
|
--
|
|
-- PostgreSQL database dump
|
|
--
|
|
|
|
-- Dumped from database version 13.0
|
|
-- Dumped by pg_dump version 13.0
|
|
|
|
SET statement_timeout = 0;
|
|
SET lock_timeout = 0;
|
|
SET idle_in_transaction_session_timeout = 0;
|
|
SET client_encoding = 'UTF8';
|
|
SET standard_conforming_strings = on;
|
|
SELECT pg_catalog.set_config('search_path', '', false);
|
|
SET check_function_bodies = false;
|
|
SET xmloption = content;
|
|
SET client_min_messages = warning;
|
|
SET row_security = off;
|
|
|
|
--
|
|
-- Name: diesel_manage_updated_at(regclass); Type: FUNCTION; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE FUNCTION public.diesel_manage_updated_at(_tbl regclass) RETURNS void
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
EXECUTE format('CREATE TRIGGER set_updated_at BEFORE UPDATE ON %s
|
|
FOR EACH ROW EXECUTE PROCEDURE diesel_set_updated_at()', _tbl);
|
|
END;
|
|
$$;
|
|
|
|
|
|
ALTER FUNCTION public.diesel_manage_updated_at(_tbl regclass) OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: diesel_set_updated_at(); Type: FUNCTION; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE FUNCTION public.diesel_set_updated_at() RETURNS trigger
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
IF (
|
|
NEW IS DISTINCT FROM OLD AND
|
|
NEW.updated_at IS NOT DISTINCT FROM OLD.updated_at
|
|
) THEN
|
|
NEW.updated_at := current_timestamp;
|
|
END IF;
|
|
RETURN NEW;
|
|
END;
|
|
$$;
|
|
|
|
|
|
ALTER FUNCTION public.diesel_set_updated_at() OWNER TO gmoore;
|
|
|
|
SET default_tablespace = '';
|
|
|
|
SET default_table_access_method = heap;
|
|
|
|
--
|
|
-- Name: __diesel_schema_migrations; Type: TABLE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE TABLE public.__diesel_schema_migrations (
|
|
version character varying(50) NOT NULL,
|
|
run_on timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.__diesel_schema_migrations OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: derivations; Type: TABLE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE TABLE public.derivations (
|
|
id integer NOT NULL,
|
|
code character varying(255) NOT NULL,
|
|
description text NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.derivations OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: derivations_id_seq; Type: SEQUENCE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE SEQUENCE public.derivations_id_seq
|
|
AS integer
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.derivations_id_seq OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: derivations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER SEQUENCE public.derivations_id_seq OWNED BY public.derivations.id;
|
|
|
|
|
|
--
|
|
-- Name: food_groups; Type: TABLE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE TABLE public.food_groups (
|
|
id integer NOT NULL,
|
|
description character varying(255) DEFAULT ''::character varying NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.food_groups OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: foods; Type: TABLE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE TABLE public.foods (
|
|
id integer NOT NULL,
|
|
publication_date timestamp with time zone NOT NULL,
|
|
modified_date timestamp with time zone NOT NULL,
|
|
available_date timestamp with time zone NOT NULL,
|
|
upc character varying(24) NOT NULL,
|
|
fdc_id character varying(24) NOT NULL,
|
|
description character varying(255) NOT NULL,
|
|
food_group_id integer DEFAULT 0 NOT NULL,
|
|
manufacturer_id integer DEFAULT 0 NOT NULL,
|
|
datasource character varying(8) NOT NULL,
|
|
serving_size double precision,
|
|
serving_unit character varying(24) DEFAULT NULL::character varying,
|
|
serving_description character varying(256) DEFAULT NULL::character varying,
|
|
country character varying(24) DEFAULT NULL::character varying,
|
|
ingredients text,
|
|
kw_tsvector tsvector GENERATED ALWAYS AS (to_tsvector('english'::regconfig, (((COALESCE(description, ''::character varying))::text || ' '::text) || COALESCE(ingredients, ''::text)))) STORED
|
|
);
|
|
|
|
|
|
ALTER TABLE public.foods OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: manufacturers; Type: TABLE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE TABLE public.manufacturers (
|
|
id integer NOT NULL,
|
|
name character varying(255) DEFAULT ''::character varying NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.manufacturers OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: food_groups_id_seq; Type: SEQUENCE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE SEQUENCE public.food_groups_id_seq
|
|
AS integer
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.food_groups_id_seq OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: food_groups_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER SEQUENCE public.food_groups_id_seq OWNED BY public.food_groups.id;
|
|
|
|
|
|
--
|
|
-- Name: foods_id_seq; Type: SEQUENCE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE SEQUENCE public.foods_id_seq
|
|
AS integer
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.foods_id_seq OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: foods_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER SEQUENCE public.foods_id_seq OWNED BY public.foods.id;
|
|
|
|
|
|
--
|
|
-- Name: manufacturers_id_seq; Type: SEQUENCE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE SEQUENCE public.manufacturers_id_seq
|
|
AS integer
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.manufacturers_id_seq OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: manufacturers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER SEQUENCE public.manufacturers_id_seq OWNED BY public.manufacturers.id;
|
|
|
|
|
|
--
|
|
-- Name: nutrient_data; Type: TABLE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE TABLE public.nutrient_data (
|
|
id integer NOT NULL,
|
|
value double precision DEFAULT '0'::double precision NOT NULL,
|
|
standard_error double precision,
|
|
minimum double precision,
|
|
maximum double precision,
|
|
median double precision,
|
|
derivation_id integer DEFAULT 0 NOT NULL,
|
|
nutrient_id integer DEFAULT 0 NOT NULL,
|
|
food_id integer DEFAULT 0 NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.nutrient_data OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: nutrient_data_id_seq; Type: SEQUENCE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE SEQUENCE public.nutrient_data_id_seq
|
|
AS integer
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.nutrient_data_id_seq OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: nutrient_data_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER SEQUENCE public.nutrient_data_id_seq OWNED BY public.nutrient_data.id;
|
|
|
|
|
|
--
|
|
-- Name: nutrients; Type: TABLE; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE TABLE public.nutrients (
|
|
id integer NOT NULL,
|
|
nutrientno character varying(12) NOT NULL,
|
|
description character varying(255) NOT NULL,
|
|
unit character varying(24) NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.nutrients OWNER TO gmoore;
|
|
|
|
--
|
|
-- Name: derivations id; Type: DEFAULT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.derivations ALTER COLUMN id SET DEFAULT nextval('public.derivations_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: food_groups id; Type: DEFAULT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.food_groups ALTER COLUMN id SET DEFAULT nextval('public.food_groups_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: foods id; Type: DEFAULT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.foods ALTER COLUMN id SET DEFAULT nextval('public.foods_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: manufacturers id; Type: DEFAULT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.manufacturers ALTER COLUMN id SET DEFAULT nextval('public.manufacturers_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: nutrient_data id; Type: DEFAULT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.nutrient_data ALTER COLUMN id SET DEFAULT nextval('public.nutrient_data_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: __diesel_schema_migrations __diesel_schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.__diesel_schema_migrations
|
|
ADD CONSTRAINT __diesel_schema_migrations_pkey PRIMARY KEY (version);
|
|
|
|
|
|
--
|
|
-- Name: derivations derivations_pkey; Type: CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.derivations
|
|
ADD CONSTRAINT derivations_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: food_groups food_groups_pkey; Type: CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.food_groups
|
|
ADD CONSTRAINT food_groups_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: foods foods_pkey; Type: CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.foods
|
|
ADD CONSTRAINT foods_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: manufacturers manufacturers_pkey; Type: CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.manufacturers
|
|
ADD CONSTRAINT manufacturers_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: nutrient_data nutrient_data_pkey; Type: CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.nutrient_data
|
|
ADD CONSTRAINT nutrient_data_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: nutrients nutrients_pkey; Type: CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.nutrients
|
|
ADD CONSTRAINT nutrients_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: idx_16458_foods_description_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16458_foods_description_idx ON public.foods USING btree (description);
|
|
|
|
|
|
--
|
|
-- Name: idx_16458_foods_fdc_id_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16458_foods_fdc_id_idx ON public.foods USING btree (fdc_id);
|
|
|
|
|
|
--
|
|
-- Name: idx_16458_foods_fk; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16458_foods_fk ON public.foods USING btree (manufacturer_id);
|
|
|
|
|
|
--
|
|
-- Name: idx_16458_foods_food_group_id_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16458_foods_food_group_id_idx ON public.foods USING btree (food_group_id);
|
|
|
|
|
|
--
|
|
-- Name: idx_16458_foods_manufacturer_id_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16458_foods_manufacturer_id_idx ON public.foods USING btree (manufacturer_id);
|
|
|
|
|
|
--
|
|
-- Name: idx_16458_foods_upc_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16458_foods_upc_idx ON public.foods USING btree (upc);
|
|
|
|
|
|
--
|
|
-- Name: idx_16472_food_groups_description_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16472_food_groups_description_idx ON public.food_groups USING btree (description);
|
|
|
|
|
|
--
|
|
-- Name: idx_16479_manufacturers_name_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16479_manufacturers_name_idx ON public.manufacturers USING btree (name);
|
|
|
|
|
|
--
|
|
-- Name: idx_16484_nutrientno; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE UNIQUE INDEX idx_16484_nutrientno ON public.nutrients USING btree (nutrientno);
|
|
|
|
|
|
--
|
|
-- Name: idx_16489_nutrient_data_fk; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16489_nutrient_data_fk ON public.nutrient_data USING btree (nutrient_id);
|
|
|
|
|
|
--
|
|
-- Name: idx_16489_nutrient_data_fk_1; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16489_nutrient_data_fk_1 ON public.nutrient_data USING btree (derivation_id);
|
|
|
|
|
|
--
|
|
-- Name: idx_16489_nutrient_data_food_id_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX idx_16489_nutrient_data_food_id_idx ON public.nutrient_data USING btree (food_id);
|
|
|
|
|
|
--
|
|
-- Name: kw_tsvector_idx; Type: INDEX; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
CREATE INDEX kw_tsvector_idx ON public.foods USING gin (kw_tsvector);
|
|
|
|
|
|
--
|
|
-- Name: foods foods_fk; Type: FK CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.foods
|
|
ADD CONSTRAINT foods_fk FOREIGN KEY (manufacturer_id) REFERENCES public.manufacturers(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
|
|
|
|
|
|
--
|
|
-- Name: foods foods_fk_1; Type: FK CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.foods
|
|
ADD CONSTRAINT foods_fk_1 FOREIGN KEY (food_group_id) REFERENCES public.food_groups(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
|
|
|
|
|
|
--
|
|
-- Name: nutrient_data nutrient_data_fk; Type: FK CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.nutrient_data
|
|
ADD CONSTRAINT nutrient_data_fk FOREIGN KEY (nutrient_id) REFERENCES public.nutrients(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
|
|
|
|
|
|
--
|
|
-- Name: nutrient_data nutrient_data_fk_1; Type: FK CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.nutrient_data
|
|
ADD CONSTRAINT nutrient_data_fk_1 FOREIGN KEY (derivation_id) REFERENCES public.derivations(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
|
|
|
|
|
|
--
|
|
-- Name: nutrient_data nutrient_data_food_fk; Type: FK CONSTRAINT; Schema: public; Owner: gmoore
|
|
--
|
|
|
|
ALTER TABLE ONLY public.nutrient_data
|
|
ADD CONSTRAINT nutrient_data_food_fk FOREIGN KEY (food_id) REFERENCES public.foods(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
|
|
|
|
|
|
--
|
|
-- PostgreSQL database dump complete
|
|
--
|
|
|