studium/db/schema.sql
Antoine Pelletier 07d98b64b3 first commit
2026-09-28 12:04:47 +02:00

219 lines
4.6 KiB
SQL

\restrict dbmate
-- Dumped from database version 18.3
-- Dumped by pg_dump version 18.6
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET transaction_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;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: courses; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.courses (
id integer NOT NULL,
name text NOT NULL,
code text,
teachers text[] DEFAULT '{}'::text[] NOT NULL,
main_page_url text
);
--
-- Name: courses_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.courses_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: courses_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.courses_id_seq OWNED BY public.courses.id;
--
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.schema_migrations (
version character varying NOT NULL
);
--
-- Name: slot_tags; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.slot_tags (
id integer NOT NULL,
name jsonb NOT NULL,
color text NOT NULL
);
--
-- Name: slot_tags_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.slot_tags_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: slot_tags_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.slot_tags_id_seq OWNED BY public.slot_tags.id;
--
-- Name: time_slots; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.time_slots (
id integer NOT NULL,
course_id integer NOT NULL,
tag_id integer NOT NULL,
weekday smallint NOT NULL,
start_time time without time zone NOT NULL,
end_time time without time zone NOT NULL,
CONSTRAINT time_slots_check CHECK ((start_time < end_time)),
CONSTRAINT time_slots_weekday_check CHECK (((weekday >= 1) AND (weekday <= 7)))
);
--
-- Name: time_slots_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.time_slots_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: time_slots_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.time_slots_id_seq OWNED BY public.time_slots.id;
--
-- Name: courses id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.courses ALTER COLUMN id SET DEFAULT nextval('public.courses_id_seq'::regclass);
--
-- Name: slot_tags id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.slot_tags ALTER COLUMN id SET DEFAULT nextval('public.slot_tags_id_seq'::regclass);
--
-- Name: time_slots id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.time_slots ALTER COLUMN id SET DEFAULT nextval('public.time_slots_id_seq'::regclass);
--
-- Name: courses courses_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.courses
ADD CONSTRAINT courses_pkey PRIMARY KEY (id);
--
-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.schema_migrations
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
--
-- Name: slot_tags slot_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.slot_tags
ADD CONSTRAINT slot_tags_pkey PRIMARY KEY (id);
--
-- Name: time_slots time_slots_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.time_slots
ADD CONSTRAINT time_slots_pkey PRIMARY KEY (id);
--
-- Name: time_slots_course_id_idx; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX time_slots_course_id_idx ON public.time_slots USING btree (course_id);
--
-- Name: time_slots time_slots_course_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.time_slots
ADD CONSTRAINT time_slots_course_id_fkey FOREIGN KEY (course_id) REFERENCES public.courses(id) ON DELETE CASCADE;
--
-- Name: time_slots time_slots_tag_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.time_slots
ADD CONSTRAINT time_slots_tag_id_fkey FOREIGN KEY (tag_id) REFERENCES public.slot_tags(id);
--
-- PostgreSQL database dump complete
--
\unrestrict dbmate
--
-- Dbmate schema migrations
--
INSERT INTO public.schema_migrations (version) VALUES
('20260928120000');