Commit 80dc426da8a0d7c38219a9cedda3c6ba8d557102

Authored by Andrew Buss
1 parent de7b01632f
Exists in master

Updated schema reflecting code changes since last change

Showing 3 changed files with 1590 additions and 10 deletions Side-by-side Diff

... ... @@ -3,11 +3,13 @@
3 3 all: $(PNGS)
4 4  
5 5 schema.png:
6   - sqlt-diagram --color -c 2 -t png -o schema.png --from SQLite db_schema.sql --title "Flashy"
  6 + sqlt-diagram --color -c 3 -t png -o schema.png --gutter 60 --from PostgreSQL db_schema.sql --title "Flashy"
7 7  
8 8 %.png: %.dot
9 9 dot -Tpng -o $@ $<
10 10  
11 11 clean:
12   - rm $(PNGS)
  12 + rm -f $(PNGS)
  13 +
  14 +again: clean all
db_schema.sql View file @ 80dc426
1   -CREATE TABLE "flashcards_userflashcardreview" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "when" datetime NOT NULL, "blanked_word" varchar(8) NOT NULL, "response" varchar(255), "correct" bool, "user_flashcard_id" integer NOT NULL REFERENCES "flashcards_userflashcard" ("id"));
2   -CREATE TABLE "flashcards_userflashcard" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "pulled" datetime, "unpulled" datetime, "flashcard_id" integer NOT NULL REFERENCES "flashcards_flashcard" ("id"), "mask_id" integer NOT NULL REFERENCES "flashcards_flashcardmask" ("id"), "user_id" integer NOT NULL REFERENCES "auth_user" ("id"));
3   -CREATE TABLE "flashcards_flashcardmask" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "ranges" varchar(255) NOT NULL);
4   -CREATE TABLE "flashcards_class" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "department" varchar(50) NOT NULL, "course_num" integer NOT NULL, "name" varchar(50) NOT NULL, "professor" varchar(50) NOT NULL, "quarter" varchar(4) NOT NULL);
5   -CREATE TABLE "django_session" ("session_key" varchar(40) NOT NULL PRIMARY KEY, "session_data" text NOT NULL, "expire_date" datetime NOT NULL);
6   -CREATE TABLE "flashcards_class_members" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "class_id" integer NOT NULL REFERENCES "flashcards_class" ("id"), "user_id" integer NOT NULL REFERENCES "auth_user" ("id"), UNIQUE ("class_id", "user_id"));
7   -CREATE TABLE "flashcards_flashcard" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "text" varchar(255) NOT NULL, "pushed" datetime NOT NULL, "material_date" datetime NOT NULL, "hidden" varchar(255), "associated_class_id" integer NOT NULL REFERENCES "flashcards_class" ("id"), "author_id" integer NOT NULL REFERENCES "auth_user" ("id"), "mask_id" integer REFERENCES "flashcards_flashcardmask" ("id"), "previous_id" integer REFERENCES "flashcards_flashcard" ("id"));
8   -CREATE TABLE "auth_user" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "password" varchar(128) NOT NULL, "is_superuser" bool NOT NULL, "username" varchar(30) NOT NULL UNIQUE, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL, "email" varchar(254) NOT NULL, "is_staff" bool NOT NULL, "is_active" bool NOT NULL, "date_joined" integer NOT NULL, "last_login" integer);
  1 +SET statement_timeout = 0;
  2 +SET lock_timeout = 0;
  3 +SET client_encoding = 'UTF8';
  4 +SET standard_conforming_strings = ON;
  5 +SET check_function_bodies = FALSE;
  6 +SET client_min_messages = WARNING;
  7 +
  8 +
  9 +CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
  10 +
  11 +
  12 +COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
  13 +
  14 +
  15 +SET search_path = PUBLIC, pg_catalog;
  16 +
  17 +SET default_tablespace = '';
  18 +
  19 +SET default_with_oids = FALSE;
  20 +
  21 +--
  22 +-- CREATE TABLE auth_group (
  23 +-- id integer NOT NULL,
  24 +-- name character varying(80) NOT NULL
  25 +-- );
  26 +--
  27 +--
  28 +-- ALTER TABLE public.auth_group OWNER TO flashy;
  29 +--
  30 +--
  31 +-- CREATE SEQUENCE auth_group_id_seq
  32 +-- START WITH 1
  33 +-- INCREMENT BY 1
  34 +-- NO MINVALUE
  35 +-- NO MAXVALUE
  36 +-- CACHE 1;
  37 +--
  38 +--
  39 +-- ALTER TABLE public.auth_group_id_seq OWNER TO flashy;
  40 +--
  41 +--
  42 +-- ALTER SEQUENCE auth_group_id_seq OWNED BY auth_group.id;
  43 +--
  44 +--
  45 +--
  46 +-- CREATE TABLE auth_group_permissions (
  47 +-- id integer NOT NULL,
  48 +-- group_id integer NOT NULL,
  49 +-- permission_id integer NOT NULL
  50 +-- );
  51 +--
  52 +--
  53 +-- ALTER TABLE public.auth_group_permissions OWNER TO flashy;
  54 +--
  55 +--
  56 +-- CREATE SEQUENCE auth_group_permissions_id_seq
  57 +-- START WITH 1
  58 +-- INCREMENT BY 1
  59 +-- NO MINVALUE
  60 +-- NO MAXVALUE
  61 +-- CACHE 1;
  62 +--
  63 +--
  64 +-- ALTER TABLE public.auth_group_permissions_id_seq OWNER TO flashy;
  65 +--
  66 +--
  67 +-- ALTER SEQUENCE auth_group_permissions_id_seq OWNED BY auth_group_permissions.id;
  68 +--
  69 +--
  70 +--
  71 +-- CREATE TABLE auth_permission (
  72 +-- id integer NOT NULL,
  73 +-- name character varying(255) NOT NULL,
  74 +-- content_type_id integer NOT NULL,
  75 +-- codename character varying(100) NOT NULL
  76 +-- );
  77 +--
  78 +--
  79 +-- ALTER TABLE public.auth_permission OWNER TO flashy;
  80 +--
  81 +--
  82 +-- CREATE SEQUENCE auth_permission_id_seq
  83 +-- START WITH 1
  84 +-- INCREMENT BY 1
  85 +-- NO MINVALUE
  86 +-- NO MAXVALUE
  87 +-- CACHE 1;
  88 +--
  89 +--
  90 +-- ALTER TABLE public.auth_permission_id_seq OWNER TO flashy;
  91 +--
  92 +--
  93 +-- ALTER SEQUENCE auth_permission_id_seq OWNED BY auth_permission.id;
  94 +--
  95 +--
  96 +--
  97 +-- CREATE TABLE django_admin_log (
  98 +-- id integer NOT NULL,
  99 +-- action_time timestamp with time zone NOT NULL,
  100 +-- object_id text,
  101 +-- object_repr character varying(200) NOT NULL,
  102 +-- action_flag smallint NOT NULL,
  103 +-- change_message text NOT NULL,
  104 +-- content_type_id integer,
  105 +-- user_id integer NOT NULL,
  106 +-- CONSTRAINT django_admin_log_action_flag_check CHECK ((action_flag >= 0))
  107 +-- );
  108 +--
  109 +--
  110 +-- ALTER TABLE public.django_admin_log OWNER TO flashy;
  111 +--
  112 +--
  113 +-- CREATE SEQUENCE django_admin_log_id_seq
  114 +-- START WITH 1
  115 +-- INCREMENT BY 1
  116 +-- NO MINVALUE
  117 +-- NO MAXVALUE
  118 +-- CACHE 1;
  119 +--
  120 +--
  121 +-- ALTER TABLE public.django_admin_log_id_seq OWNER TO flashy;
  122 +--
  123 +--
  124 +-- ALTER SEQUENCE django_admin_log_id_seq OWNED BY django_admin_log.id;
  125 +--
  126 +--
  127 +--
  128 +-- CREATE TABLE django_content_type (
  129 +-- id integer NOT NULL,
  130 +-- app_label character varying(100) NOT NULL,
  131 +-- model character varying(100) NOT NULL
  132 +-- );
  133 +--
  134 +--
  135 +-- ALTER TABLE public.django_content_type OWNER TO flashy;
  136 +--
  137 +--
  138 +-- CREATE SEQUENCE django_content_type_id_seq
  139 +-- START WITH 1
  140 +-- INCREMENT BY 1
  141 +-- NO MINVALUE
  142 +-- NO MAXVALUE
  143 +-- CACHE 1;
  144 +--
  145 +--
  146 +-- ALTER TABLE public.django_content_type_id_seq OWNER TO flashy;
  147 +--
  148 +--
  149 +-- ALTER SEQUENCE django_content_type_id_seq OWNED BY django_content_type.id;
  150 +--
  151 +--
  152 +--
  153 +-- CREATE TABLE django_migrations (
  154 +-- id integer NOT NULL,
  155 +-- app character varying(255) NOT NULL,
  156 +-- name character varying(255) NOT NULL,
  157 +-- applied timestamp with time zone NOT NULL
  158 +-- );
  159 +--
  160 +--
  161 +-- ALTER TABLE public.django_migrations OWNER TO flashy;
  162 +--
  163 +--
  164 +-- CREATE SEQUENCE django_migrations_id_seq
  165 +-- START WITH 1
  166 +-- INCREMENT BY 1
  167 +-- NO MINVALUE
  168 +-- NO MAXVALUE
  169 +-- CACHE 1;
  170 +--
  171 +--
  172 +-- ALTER TABLE public.django_migrations_id_seq OWNER TO flashy;
  173 +--
  174 +--
  175 +-- ALTER SEQUENCE django_migrations_id_seq OWNED BY django_migrations.id;
  176 +
  177 +
  178 +CREATE TABLE flashcards_lectureperiod (
  179 + id INTEGER NOT NULL,
  180 + week_day INTEGER NOT NULL,
  181 + start_time TIME NOT NULL,
  182 + end_time TIME NOT NULL,
  183 + section_id INTEGER NOT NULL
  184 +);
  185 +
  186 +
  187 +CREATE TABLE flashcards_section_whitelist (
  188 + id INTEGER NOT NULL,
  189 + section_id INTEGER NOT NULL,
  190 + user_id INTEGER NOT NULL
  191 +);
  192 +
  193 +CREATE TABLE flashcards_section (
  194 +
  195 + department CHARACTER VARYING(50) NOT NULL,
  196 + course_num CHARACTER VARYING(6) NOT NULL,
  197 + course_title CHARACTER VARYING(50) NOT NULL,
  198 + id INTEGER NOT NULL,
  199 + instructor CHARACTER VARYING(100) NOT NULL,
  200 + quarter CHARACTER VARYING(4) NOT NULL
  201 +);
  202 +
  203 +
  204 +CREATE TABLE flashcards_whitelistedaddress (
  205 + id INTEGER NOT NULL,
  206 + email CHARACTER VARYING(254) NOT NULL,
  207 + section_id INTEGER NOT NULL
  208 +);
  209 +
  210 +
  211 +CREATE TABLE flashcards_user (
  212 + id INTEGER NOT NULL,
  213 + password CHARACTER VARYING(128) NOT NULL,
  214 + last_login TIMESTAMP,
  215 + is_superuser BOOLEAN NOT NULL,
  216 + username CHARACTER VARYING(30) NOT NULL,
  217 + first_name CHARACTER VARYING(30) NOT NULL,
  218 + last_name CHARACTER VARYING(30) NOT NULL,
  219 + email CHARACTER VARYING(254) NOT NULL,
  220 + is_staff BOOLEAN NOT NULL,
  221 + is_active BOOLEAN NOT NULL,
  222 + date_joined TIMESTAMP NOT NULL
  223 +);
  224 +
  225 +CREATE TABLE flashcards_user_sections (
  226 + id INTEGER NOT NULL,
  227 + user_id INTEGER NOT NULL,
  228 + section_id INTEGER NOT NULL
  229 +);
  230 +--
  231 +-- CREATE TABLE flashcards_user_groups (
  232 +-- id integer NOT NULL,
  233 +-- user_id integer NOT NULL,
  234 +-- group_id integer NOT NULL
  235 +-- );
  236 +--
  237 +--
  238 +-- ALTER TABLE public.flashcards_user_groups OWNER TO flashy;
  239 +--
  240 +--
  241 +-- CREATE SEQUENCE flashcards_user_groups_id_seq
  242 +-- START WITH 1
  243 +-- INCREMENT BY 1
  244 +-- NO MINVALUE
  245 +-- NO MAXVALUE
  246 +-- CACHE 1;
  247 +--
  248 +--
  249 +-- ALTER TABLE public.flashcards_user_groups_id_seq OWNER TO flashy;
  250 +--
  251 +--
  252 +-- ALTER SEQUENCE flashcards_user_groups_id_seq OWNED BY flashcards_user_groups.id;
  253 +CREATE TABLE flashcards_flashcard (
  254 + id INTEGER NOT NULL,
  255 + section_id INTEGER NOT NULL,
  256 + text CHARACTER VARYING(255) NOT NULL,
  257 + pushed TIMESTAMP NOT NULL,
  258 + material_date TIMESTAMP NOT NULL,
  259 + is_hidden BOOLEAN NOT NULL,
  260 + hide_reason CHARACTER VARYING(255) NOT NULL,
  261 + author_id INTEGER NOT NULL,
  262 + mask_id INTEGER,
  263 + previous_id INTEGER
  264 +
  265 +);
  266 +
  267 +
  268 +
  269 +
  270 +CREATE TABLE django_session (
  271 + session_key CHARACTER VARYING(40) NOT NULL,
  272 + session_data TEXT NOT NULL,
  273 + expire_date TIMESTAMP NOT NULL
  274 +);
  275 +
  276 +
  277 +--
  278 +--
  279 +-- CREATE TABLE flashcards_user_user_permissions (
  280 +-- id integer NOT NULL,
  281 +-- user_id integer NOT NULL,
  282 +-- permission_id integer NOT NULL
  283 +-- );
  284 +--
  285 +--
  286 +-- ALTER TABLE public.flashcards_user_user_permissions OWNER TO flashy;
  287 +--
  288 +--
  289 +-- CREATE SEQUENCE flashcards_user_user_permissions_id_seq
  290 +-- START WITH 1
  291 +-- INCREMENT BY 1
  292 +-- NO MINVALUE
  293 +-- NO MAXVALUE
  294 +-- CACHE 1;
  295 +--
  296 +--
  297 +-- ALTER TABLE public.flashcards_user_user_permissions_id_seq OWNER TO flashy;
  298 +--
  299 +--
  300 +-- ALTER SEQUENCE flashcards_user_user_permissions_id_seq OWNED BY flashcards_user_user_permissions.id;
  301 +
  302 +
  303 +
  304 +CREATE TABLE flashcards_flashcardreport (
  305 + id INTEGER NOT NULL,
  306 + reason CHARACTER VARYING(255) NOT NULL,
  307 + flashcard_id INTEGER NOT NULL,
  308 + user_id INTEGER NOT NULL
  309 +);
  310 +
  311 +CREATE TABLE flashcards_userflashcardreview (
  312 + id INTEGER NOT NULL,
  313 + "when" TIMESTAMP NOT NULL,
  314 + blanked_word CHARACTER VARYING(8) NOT NULL,
  315 + response CHARACTER VARYING(255),
  316 + correct BOOLEAN,
  317 + user_flashcard_id INTEGER NOT NULL
  318 +);
  319 +
  320 +CREATE TABLE flashcards_userflashcard (
  321 + id INTEGER NOT NULL,
  322 + user_id INTEGER NOT NULL,
  323 + pulled TIMESTAMP,
  324 + unpulled TIMESTAMP,
  325 + flashcard_id INTEGER NOT NULL,
  326 + mask_id INTEGER NOT NULL
  327 +);
  328 +
  329 +
  330 +
  331 +
  332 +CREATE TABLE flashcards_flashcardmask (
  333 + id INTEGER NOT NULL,
  334 + ranges CHARACTER VARYING(255) NOT NULL
  335 +);
  336 +
  337 +
  338 +--
  339 +-- CREATE TABLE simple_email_confirmation_emailaddress (
  340 +-- id integer NOT NULL,
  341 +-- email character varying(255) NOT NULL,
  342 +-- key character varying(40) NOT NULL,
  343 +-- set_at timestamp with time zone NOT NULL,
  344 +-- confirmed_at timestamp with time zone,
  345 +-- user_id integer NOT NULL
  346 +-- );
  347 +
  348 +--
  349 +--
  350 +--
  351 +-- ALTER TABLE ONLY auth_group
  352 +-- ADD CONSTRAINT auth_group_name_key UNIQUE (name);
  353 +--
  354 +--
  355 +--
  356 +-- ALTER TABLE ONLY auth_group_permissions
  357 +-- ADD CONSTRAINT auth_group_permissions_group_id_permission_id_key UNIQUE (group_id, permission_id);
  358 +--
  359 +--
  360 +--
  361 +-- ALTER TABLE ONLY auth_group_permissions
  362 +-- ADD CONSTRAINT auth_group_permissions_pkey PRIMARY KEY (id);
  363 +--
  364 +--
  365 +--
  366 +-- ALTER TABLE ONLY auth_group
  367 +-- ADD CONSTRAINT auth_group_pkey PRIMARY KEY (id);
  368 +--
  369 +--
  370 +--
  371 +-- ALTER TABLE ONLY auth_permission
  372 +-- ADD CONSTRAINT auth_permission_content_type_id_codename_key UNIQUE (content_type_id, codename);
  373 +--
  374 +--
  375 +--
  376 +-- ALTER TABLE ONLY auth_permission
  377 +-- ADD CONSTRAINT auth_permission_pkey PRIMARY KEY (id);
  378 +--
  379 +--
  380 +--
  381 +-- ALTER TABLE ONLY django_admin_log
  382 +-- ADD CONSTRAINT django_admin_log_pkey PRIMARY KEY (id);
  383 +--
  384 +--
  385 +--
  386 +-- ALTER TABLE ONLY django_content_type
  387 +-- ADD CONSTRAINT django_content_type_app_label_45f3b1d93ec8c61c_uniq UNIQUE (app_label, model);
  388 +--
  389 +--
  390 +--
  391 +-- ALTER TABLE ONLY django_content_type
  392 +-- ADD CONSTRAINT django_content_type_pkey PRIMARY KEY (id);
  393 +--
  394 +--
  395 +--
  396 +-- ALTER TABLE ONLY django_migrations
  397 +-- ADD CONSTRAINT django_migrations_pkey PRIMARY KEY (id);
  398 +--
  399 +--
  400 +--
  401 +
  402 +
  403 +ALTER TABLE ONLY flashcards_flashcard
  404 +ADD CONSTRAINT flashcards_flashcard_pkey PRIMARY KEY (id);
  405 +
  406 +
  407 +ALTER TABLE ONLY flashcards_flashcardmask
  408 +ADD CONSTRAINT flashcards_flashcardmask_pkey PRIMARY KEY (id);
  409 +
  410 +
  411 +ALTER TABLE ONLY flashcards_flashcardreport
  412 +ADD CONSTRAINT flashcards_flashcardreport_pkey PRIMARY KEY (id);
  413 +
  414 +
  415 +ALTER TABLE ONLY flashcards_flashcardreport
  416 +ADD CONSTRAINT flashcards_flashcardreport_user_id_33ed44e076ba0c26_uniq UNIQUE (user_id, flashcard_id);
  417 +
  418 +
  419 +ALTER TABLE ONLY flashcards_lectureperiod
  420 +ADD CONSTRAINT flashcards_lectureperiod_pkey PRIMARY KEY (id);
  421 +
  422 +
  423 +ALTER TABLE ONLY flashcards_lectureperiod
  424 +ADD CONSTRAINT flashcards_lectureperiod_section_id_64d9645909ab3722_uniq UNIQUE (section_id, start_time, week_day);
  425 +
  426 +
  427 +ALTER TABLE ONLY flashcards_section
  428 +ADD CONSTRAINT flashcards_section_department_62472d9260ce7d87_uniq UNIQUE (department, course_num, quarter, instructor);
  429 +
  430 +
  431 +ALTER TABLE ONLY flashcards_section
  432 +ADD CONSTRAINT flashcards_section_pkey PRIMARY KEY (id);
  433 +
  434 +
  435 +ALTER TABLE ONLY flashcards_section_whitelist
  436 +ADD CONSTRAINT flashcards_section_whitelist_pkey PRIMARY KEY (id);
  437 +
  438 +
  439 +ALTER TABLE ONLY flashcards_section_whitelist
  440 +ADD CONSTRAINT flashcards_section_whitelist_section_id_user_id_key UNIQUE (section_id, user_id);
  441 +
  442 +
  443 +ALTER TABLE ONLY flashcards_user
  444 +ADD CONSTRAINT flashcards_user_email_key UNIQUE (email);
  445 +
  446 +--
  447 +--
  448 +-- ALTER TABLE ONLY flashcards_user_groups
  449 +-- ADD CONSTRAINT flashcards_user_groups_pkey PRIMARY KEY (id);
  450 +--
  451 +--
  452 +--
  453 +-- ALTER TABLE ONLY flashcards_user_groups
  454 +-- ADD CONSTRAINT flashcards_user_groups_user_id_group_id_key UNIQUE (user_id, group_id);
  455 +--
  456 +--
  457 +
  458 +ALTER TABLE ONLY flashcards_user
  459 +ADD CONSTRAINT flashcards_user_pkey PRIMARY KEY (id);
  460 +
  461 +
  462 +ALTER TABLE ONLY flashcards_user_sections
  463 +ADD CONSTRAINT flashcards_user_sections_pkey PRIMARY KEY (id);
  464 +
  465 +
  466 +ALTER TABLE ONLY flashcards_user_sections
  467 +ADD CONSTRAINT flashcards_user_sections_user_id_section_id_key UNIQUE (user_id, section_id);
  468 +
  469 +
  470 +--
  471 +-- ALTER TABLE ONLY flashcards_user_user_permissions
  472 +-- ADD CONSTRAINT flashcards_user_user_permissions_pkey PRIMARY KEY (id);
  473 +--
  474 +--
  475 +--
  476 +-- ALTER TABLE ONLY flashcards_user_user_permissions
  477 +-- ADD CONSTRAINT flashcards_user_user_permissions_user_id_permission_id_key UNIQUE (user_id, permission_id);
  478 +--
  479 +--
  480 +
  481 +ALTER TABLE ONLY flashcards_userflashcard
  482 +ADD CONSTRAINT flashcards_userflashcard_pkey PRIMARY KEY (id);
  483 +
  484 +
  485 +ALTER TABLE ONLY flashcards_userflashcard
  486 +ADD CONSTRAINT flashcards_userflashcard_user_id_15a77ea9fbc24533_uniq UNIQUE (user_id, flashcard_id);
  487 +
  488 +
  489 +ALTER TABLE ONLY flashcards_userflashcardreview
  490 +ADD CONSTRAINT flashcards_userflashcardreview_pkey PRIMARY KEY (id);
  491 +
  492 +
  493 +ALTER TABLE ONLY flashcards_whitelistedaddress
  494 +ADD CONSTRAINT flashcards_whitelistedaddress_pkey PRIMARY KEY (id);
  495 +
  496 +
  497 +--
  498 +-- ALTER TABLE ONLY simple_email_confirmation_emailaddress
  499 +-- ADD CONSTRAINT simple_email_confirmation_emailad_user_id_4729ce83422361d3_uniq UNIQUE (user_id, email);
  500 +--
  501 +--
  502 +--
  503 +-- ALTER TABLE ONLY simple_email_confirmation_emailaddress
  504 +-- ADD CONSTRAINT simple_email_confirmation_emailaddress_key_key UNIQUE (key);
  505 +--
  506 +--
  507 +--
  508 +-- ALTER TABLE ONLY simple_email_confirmation_emailaddress
  509 +-- ADD CONSTRAINT simple_email_confirmation_emailaddress_pkey PRIMARY KEY (id);
  510 +--
  511 +--
  512 +-- ALTER TABLE ONLY auth_permission
  513 +-- ADD CONSTRAINT auth_content_type_id_508cf46651277a81_fk_django_content_type_id FOREIGN KEY (content_type_id) REFERENCES django_content_type(id) DEFERRABLE INITIALLY DEFERRED;
  514 +--
  515 +--
  516 +--
  517 +-- ALTER TABLE ONLY auth_group_permissions
  518 +-- ADD CONSTRAINT auth_group_permissio_group_id_689710a9a73b7457_fk_auth_group_id FOREIGN KEY (group_id) REFERENCES auth_group(id) DEFERRABLE INITIALLY DEFERRED;
  519 +--
  520 +--
  521 +--
  522 +-- ALTER TABLE ONLY auth_group_permissions
  523 +-- ADD CONSTRAINT auth_group_permission_id_1f49ccbbdc69d2fc_fk_auth_permission_id FOREIGN KEY (permission_id) REFERENCES auth_permission(id) DEFERRABLE INITIALLY DEFERRED;
  524 +--
  525 +
  526 +
  527 +ALTER TABLE ONLY flashcards_userflashcardreview
  528 +ADD CONSTRAINT c7fb24e9ba5630e6a0a6e09a8db7bd8a FOREIGN KEY (user_flashcard_id) REFERENCES flashcards_userflashcard (id) DEFERRABLE INITIALLY DEFERRED;
  529 +
  530 +
  531 +--
  532 +-- ALTER TABLE ONLY django_admin_log
  533 +-- ADD CONSTRAINT djan_content_type_id_697914295151027a_fk_django_content_type_id FOREIGN KEY (content_type_id) REFERENCES django_content_type(id) DEFERRABLE INITIALLY DEFERRED;
  534 +--
  535 +--
  536 +--
  537 +-- ALTER TABLE ONLY django_admin_log
  538 +-- ADD CONSTRAINT django_admin_log_user_id_52fdd58701c5f563_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  539 +--
  540 +--
  541 +
  542 +ALTER TABLE ONLY flashcards_userflashcard
  543 +ADD CONSTRAINT flashc_flashcard_id_27191f1ce29d4f6e_fk_flashcards_flashcard_id FOREIGN KEY (flashcard_id) REFERENCES flashcards_flashcard (id) DEFERRABLE INITIALLY DEFERRED;
  544 +
  545 +ALTER TABLE ONLY flashcards_flashcardreport
  546 +ADD CONSTRAINT flashc_flashcard_id_540e99a32f8e7ce1_fk_flashcards_flashcard_id FOREIGN KEY (flashcard_id) REFERENCES flashcards_flashcard (id) DEFERRABLE INITIALLY DEFERRED;
  547 +
  548 +
  549 +ALTER TABLE ONLY flashcards_userflashcard
  550 +ADD CONSTRAINT flashca_mask_id_11891dc686c95979_fk_flashcards_flashcardmask_id FOREIGN KEY (mask_id) REFERENCES flashcards_flashcardmask (id) DEFERRABLE INITIALLY DEFERRED;
  551 +
  552 +
  553 +ALTER TABLE ONLY flashcards_flashcard
  554 +ADD CONSTRAINT flashca_mask_id_315fc31541014dcc_fk_flashcards_flashcardmask_id FOREIGN KEY (mask_id) REFERENCES flashcards_flashcardmask (id) DEFERRABLE INITIALLY DEFERRED;
  555 +
  556 +
  557 +ALTER TABLE ONLY flashcards_flashcard
  558 +ADD CONSTRAINT flashca_previous_id_3cf24e79b530c8db_fk_flashcards_flashcard_id FOREIGN KEY (previous_id) REFERENCES flashcards_flashcard (id) DEFERRABLE INITIALLY DEFERRED;
  559 +
  560 +
  561 +ALTER TABLE ONLY flashcards_flashcard
  562 +ADD CONSTRAINT flashcards__section_id_4127cb9d74c53ca_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
  563 +
  564 +
  565 +ALTER TABLE ONLY flashcards_flashcard
  566 +ADD CONSTRAINT flashcards_flas_author_id_605ad2783a84485_fk_flashcards_user_id FOREIGN KEY (author_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
  567 +
  568 +
  569 +ALTER TABLE ONLY flashcards_flashcardreport
  570 +ADD CONSTRAINT flashcards_flash_user_id_6c10819646f15401_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
  571 +
  572 +
  573 +--
  574 +-- ALTER TABLE ONLY flashcards_user_user_permissions
  575 +-- ADD CONSTRAINT flashcards_permission_id_5283cfc195698563_fk_auth_permission_id FOREIGN KEY (permission_id) REFERENCES auth_permission(id) DEFERRABLE INITIALLY DEFERRED;
  576 +--
  577 +
  578 +
  579 +ALTER TABLE ONLY flashcards_section_whitelist
  580 +ADD CONSTRAINT flashcards_secti_user_id_1d1c9d98deba8a72_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
  581 +
  582 +
  583 +ALTER TABLE ONLY flashcards_whitelistedaddress
  584 +ADD CONSTRAINT flashcards_section_id_22918ec2e83b2f75_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
  585 +
  586 +
  587 +ALTER TABLE ONLY flashcards_lectureperiod
  588 +ADD CONSTRAINT flashcards_section_id_302c30eb724723f1_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
  589 +
  590 +
  591 +ALTER TABLE ONLY flashcards_section_whitelist
  592 +ADD CONSTRAINT flashcards_section_id_4e763ee4275cf523_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
  593 +
  594 +
  595 +ALTER TABLE ONLY flashcards_user_sections
  596 +ADD CONSTRAINT flashcards_section_id_5d49f31bd84d8f3a_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
  597 +
  598 +
  599 +--
  600 +-- ALTER TABLE ONLY flashcards_user_user_permissions
  601 +-- ADD CONSTRAINT flashcards_user__user_id_12a00980f5183829_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  602 +--
  603 +--
  604 +--
  605 +ALTER TABLE ONLY flashcards_user_sections
  606 +ADD CONSTRAINT flashcards_user__user_id_534bccbf48772015_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
  607 +
  608 +
  609 +ALTER TABLE ONLY flashcards_userflashcard
  610 +ADD CONSTRAINT flashcards_userf_user_id_15c43eedfd53f472_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
  611 +
  612 +--
  613 +-- ALTER TABLE ONLY simple_email_confirmation_emailaddress
  614 +-- ADD CONSTRAINT simple_email_con_user_id_725af1fcf343cca1_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  615 +--
  1 +
  2 +SET statement_timeout = 0;
  3 +SET lock_timeout = 0;
  4 +SET client_encoding = 'UTF8';
  5 +SET standard_conforming_strings = on;
  6 +SET check_function_bodies = false;
  7 +SET client_min_messages = warning;
  8 +
  9 +
  10 +CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
  11 +
  12 +
  13 +
  14 +COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
  15 +
  16 +
  17 +SET search_path = public, pg_catalog;
  18 +
  19 +SET default_tablespace = '';
  20 +
  21 +SET default_with_oids = false;
  22 +
  23 +
  24 +CREATE TABLE auth_group (
  25 + id integer NOT NULL,
  26 + name character varying(80) NOT NULL
  27 +);
  28 +
  29 +
  30 +ALTER TABLE public.auth_group OWNER TO flashy;
  31 +
  32 +
  33 +CREATE SEQUENCE auth_group_id_seq
  34 + START WITH 1
  35 + INCREMENT BY 1
  36 + NO MINVALUE
  37 + NO MAXVALUE
  38 + CACHE 1;
  39 +
  40 +
  41 +ALTER TABLE public.auth_group_id_seq OWNER TO flashy;
  42 +
  43 +
  44 +ALTER SEQUENCE auth_group_id_seq OWNED BY auth_group.id;
  45 +
  46 +
  47 +
  48 +CREATE TABLE auth_group_permissions (
  49 + id integer NOT NULL,
  50 + group_id integer NOT NULL,
  51 + permission_id integer NOT NULL
  52 +);
  53 +
  54 +
  55 +ALTER TABLE public.auth_group_permissions OWNER TO flashy;
  56 +
  57 +
  58 +CREATE SEQUENCE auth_group_permissions_id_seq
  59 + START WITH 1
  60 + INCREMENT BY 1
  61 + NO MINVALUE
  62 + NO MAXVALUE
  63 + CACHE 1;
  64 +
  65 +
  66 +ALTER TABLE public.auth_group_permissions_id_seq OWNER TO flashy;
  67 +
  68 +
  69 +ALTER SEQUENCE auth_group_permissions_id_seq OWNED BY auth_group_permissions.id;
  70 +
  71 +
  72 +
  73 +CREATE TABLE auth_permission (
  74 + id integer NOT NULL,
  75 + name character varying(255) NOT NULL,
  76 + content_type_id integer NOT NULL,
  77 + codename character varying(100) NOT NULL
  78 +);
  79 +
  80 +
  81 +ALTER TABLE public.auth_permission OWNER TO flashy;
  82 +
  83 +
  84 +CREATE SEQUENCE auth_permission_id_seq
  85 + START WITH 1
  86 + INCREMENT BY 1
  87 + NO MINVALUE
  88 + NO MAXVALUE
  89 + CACHE 1;
  90 +
  91 +
  92 +ALTER TABLE public.auth_permission_id_seq OWNER TO flashy;
  93 +
  94 +
  95 +ALTER SEQUENCE auth_permission_id_seq OWNED BY auth_permission.id;
  96 +
  97 +
  98 +
  99 +CREATE TABLE django_admin_log (
  100 + id integer NOT NULL,
  101 + action_time timestamp with time zone NOT NULL,
  102 + object_id text,
  103 + object_repr character varying(200) NOT NULL,
  104 + action_flag smallint NOT NULL,
  105 + change_message text NOT NULL,
  106 + content_type_id integer,
  107 + user_id integer NOT NULL,
  108 + CONSTRAINT django_admin_log_action_flag_check CHECK ((action_flag >= 0))
  109 +);
  110 +
  111 +
  112 +ALTER TABLE public.django_admin_log OWNER TO flashy;
  113 +
  114 +
  115 +CREATE SEQUENCE django_admin_log_id_seq
  116 + START WITH 1
  117 + INCREMENT BY 1
  118 + NO MINVALUE
  119 + NO MAXVALUE
  120 + CACHE 1;
  121 +
  122 +
  123 +ALTER TABLE public.django_admin_log_id_seq OWNER TO flashy;
  124 +
  125 +
  126 +ALTER SEQUENCE django_admin_log_id_seq OWNED BY django_admin_log.id;
  127 +
  128 +
  129 +
  130 +CREATE TABLE django_content_type (
  131 + id integer NOT NULL,
  132 + app_label character varying(100) NOT NULL,
  133 + model character varying(100) NOT NULL
  134 +);
  135 +
  136 +
  137 +ALTER TABLE public.django_content_type OWNER TO flashy;
  138 +
  139 +
  140 +CREATE SEQUENCE django_content_type_id_seq
  141 + START WITH 1
  142 + INCREMENT BY 1
  143 + NO MINVALUE
  144 + NO MAXVALUE
  145 + CACHE 1;
  146 +
  147 +
  148 +ALTER TABLE public.django_content_type_id_seq OWNER TO flashy;
  149 +
  150 +
  151 +ALTER SEQUENCE django_content_type_id_seq OWNED BY django_content_type.id;
  152 +
  153 +
  154 +
  155 +CREATE TABLE django_migrations (
  156 + id integer NOT NULL,
  157 + app character varying(255) NOT NULL,
  158 + name character varying(255) NOT NULL,
  159 + applied timestamp with time zone NOT NULL
  160 +);
  161 +
  162 +
  163 +ALTER TABLE public.django_migrations OWNER TO flashy;
  164 +
  165 +
  166 +CREATE SEQUENCE django_migrations_id_seq
  167 + START WITH 1
  168 + INCREMENT BY 1
  169 + NO MINVALUE
  170 + NO MAXVALUE
  171 + CACHE 1;
  172 +
  173 +
  174 +ALTER TABLE public.django_migrations_id_seq OWNER TO flashy;
  175 +
  176 +
  177 +ALTER SEQUENCE django_migrations_id_seq OWNED BY django_migrations.id;
  178 +
  179 +
  180 +CREATE TABLE django_session (
  181 + session_key character varying(40) NOT NULL,
  182 + session_data text NOT NULL,
  183 + expire_date timestamp with time zone NOT NULL
  184 +);
  185 +
  186 +
  187 +ALTER TABLE public.django_session OWNER TO flashy;
  188 +
  189 +
  190 +CREATE TABLE flashcards_flashcard (
  191 + id integer NOT NULL,
  192 + text character varying(255) NOT NULL,
  193 + pushed timestamp with time zone NOT NULL,
  194 + material_date timestamp with time zone NOT NULL,
  195 + is_hidden boolean NOT NULL,
  196 + hide_reason character varying(255) NOT NULL,
  197 + author_id integer NOT NULL,
  198 + mask_id integer,
  199 + previous_id integer,
  200 + section_id integer NOT NULL
  201 +);
  202 +
  203 +
  204 +ALTER TABLE public.flashcards_flashcard OWNER TO flashy;
  205 +
  206 +
  207 +CREATE SEQUENCE flashcards_flashcard_id_seq
  208 + START WITH 1
  209 + INCREMENT BY 1
  210 + NO MINVALUE
  211 + NO MAXVALUE
  212 + CACHE 1;
  213 +
  214 +
  215 +ALTER TABLE public.flashcards_flashcard_id_seq OWNER TO flashy;
  216 +
  217 +
  218 +ALTER SEQUENCE flashcards_flashcard_id_seq OWNED BY flashcards_flashcard.id;
  219 +
  220 +
  221 +
  222 +CREATE TABLE flashcards_flashcardmask (
  223 + id integer NOT NULL,
  224 + ranges character varying(255) NOT NULL
  225 +);
  226 +
  227 +
  228 +ALTER TABLE public.flashcards_flashcardmask OWNER TO flashy;
  229 +
  230 +
  231 +CREATE SEQUENCE flashcards_flashcardmask_id_seq
  232 + START WITH 1
  233 + INCREMENT BY 1
  234 + NO MINVALUE
  235 + NO MAXVALUE
  236 + CACHE 1;
  237 +
  238 +
  239 +ALTER TABLE public.flashcards_flashcardmask_id_seq OWNER TO flashy;
  240 +
  241 +
  242 +ALTER SEQUENCE flashcards_flashcardmask_id_seq OWNED BY flashcards_flashcardmask.id;
  243 +
  244 +
  245 +
  246 +CREATE TABLE flashcards_flashcardreport (
  247 + id integer NOT NULL,
  248 + reason character varying(255) NOT NULL,
  249 + flashcard_id integer NOT NULL,
  250 + user_id integer NOT NULL
  251 +);
  252 +
  253 +
  254 +ALTER TABLE public.flashcards_flashcardreport OWNER TO flashy;
  255 +
  256 +
  257 +CREATE SEQUENCE flashcards_flashcardreport_id_seq
  258 + START WITH 1
  259 + INCREMENT BY 1
  260 + NO MINVALUE
  261 + NO MAXVALUE
  262 + CACHE 1;
  263 +
  264 +
  265 +ALTER TABLE public.flashcards_flashcardreport_id_seq OWNER TO flashy;
  266 +
  267 +
  268 +ALTER SEQUENCE flashcards_flashcardreport_id_seq OWNED BY flashcards_flashcardreport.id;
  269 +
  270 +
  271 +CREATE TABLE flashcards_lectureperiod (
  272 + id integer NOT NULL,
  273 + week_day integer NOT NULL,
  274 + start_time time without time zone NOT NULL,
  275 + end_time time without time zone NOT NULL,
  276 + section_id integer NOT NULL
  277 +);
  278 +
  279 +
  280 +ALTER TABLE public.flashcards_lectureperiod OWNER TO flashy;
  281 +
  282 +
  283 +
  284 +CREATE TABLE flashcards_section (
  285 + id integer NOT NULL,
  286 + department character varying(50) NOT NULL,
  287 + course_num character varying(6) NOT NULL,
  288 + course_title character varying(50) NOT NULL,
  289 + instructor character varying(100) NOT NULL,
  290 + quarter character varying(4) NOT NULL
  291 +);
  292 +
  293 +
  294 +ALTER TABLE public.flashcards_section OWNER TO flashy;
  295 +
  296 +
  297 +CREATE SEQUENCE flashcards_section_id_seq
  298 + START WITH 1
  299 + INCREMENT BY 1
  300 + NO MINVALUE
  301 + NO MAXVALUE
  302 + CACHE 1;
  303 +
  304 +
  305 +ALTER TABLE public.flashcards_section_id_seq OWNER TO flashy;
  306 +
  307 +
  308 +ALTER SEQUENCE flashcards_section_id_seq OWNED BY flashcards_section.id;
  309 +
  310 +
  311 +
  312 +CREATE TABLE flashcards_section_whitelist (
  313 + id integer NOT NULL,
  314 + section_id integer NOT NULL,
  315 + user_id integer NOT NULL
  316 +);
  317 +
  318 +
  319 +ALTER TABLE public.flashcards_section_whitelist OWNER TO flashy;
  320 +
  321 +
  322 +CREATE SEQUENCE flashcards_section_whitelist_id_seq
  323 + START WITH 1
  324 + INCREMENT BY 1
  325 + NO MINVALUE
  326 + NO MAXVALUE
  327 + CACHE 1;
  328 +
  329 +
  330 +ALTER TABLE public.flashcards_section_whitelist_id_seq OWNER TO flashy;
  331 +
  332 +
  333 +ALTER SEQUENCE flashcards_section_whitelist_id_seq OWNED BY flashcards_section_whitelist.id;
  334 +
  335 +
  336 +
  337 +CREATE TABLE flashcards_user (
  338 + id integer NOT NULL,
  339 + password character varying(128) NOT NULL,
  340 + last_login timestamp with time zone,
  341 + is_superuser boolean NOT NULL,
  342 + username character varying(30) NOT NULL,
  343 + first_name character varying(30) NOT NULL,
  344 + last_name character varying(30) NOT NULL,
  345 + email character varying(254) NOT NULL,
  346 + is_staff boolean NOT NULL,
  347 + is_active boolean NOT NULL,
  348 + date_joined timestamp with time zone NOT NULL
  349 +);
  350 +
  351 +
  352 +ALTER TABLE public.flashcards_user OWNER TO flashy;
  353 +
  354 +
  355 +CREATE TABLE flashcards_user_groups (
  356 + id integer NOT NULL,
  357 + user_id integer NOT NULL,
  358 + group_id integer NOT NULL
  359 +);
  360 +
  361 +
  362 +ALTER TABLE public.flashcards_user_groups OWNER TO flashy;
  363 +
  364 +
  365 +CREATE SEQUENCE flashcards_user_groups_id_seq
  366 + START WITH 1
  367 + INCREMENT BY 1
  368 + NO MINVALUE
  369 + NO MAXVALUE
  370 + CACHE 1;
  371 +
  372 +
  373 +ALTER TABLE public.flashcards_user_groups_id_seq OWNER TO flashy;
  374 +
  375 +
  376 +ALTER SEQUENCE flashcards_user_groups_id_seq OWNED BY flashcards_user_groups.id;
  377 +
  378 +
  379 +
  380 +CREATE SEQUENCE flashcards_user_id_seq
  381 + START WITH 1
  382 + INCREMENT BY 1
  383 + NO MINVALUE
  384 + NO MAXVALUE
  385 + CACHE 1;
  386 +
  387 +
  388 +ALTER TABLE public.flashcards_user_id_seq OWNER TO flashy;
  389 +
  390 +
  391 +ALTER SEQUENCE flashcards_user_id_seq OWNED BY flashcards_user.id;
  392 +
  393 +
  394 +
  395 +CREATE TABLE flashcards_user_sections (
  396 + id integer NOT NULL,
  397 + user_id integer NOT NULL,
  398 + section_id integer NOT NULL
  399 +);
  400 +
  401 +
  402 +ALTER TABLE public.flashcards_user_sections OWNER TO flashy;
  403 +
  404 +
  405 +CREATE SEQUENCE flashcards_user_sections_id_seq
  406 + START WITH 1
  407 + INCREMENT BY 1
  408 + NO MINVALUE
  409 + NO MAXVALUE
  410 + CACHE 1;
  411 +
  412 +
  413 +ALTER TABLE public.flashcards_user_sections_id_seq OWNER TO flashy;
  414 +
  415 +
  416 +ALTER SEQUENCE flashcards_user_sections_id_seq OWNED BY flashcards_user_sections.id;
  417 +
  418 +
  419 +
  420 +CREATE TABLE flashcards_user_user_permissions (
  421 + id integer NOT NULL,
  422 + user_id integer NOT NULL,
  423 + permission_id integer NOT NULL
  424 +);
  425 +
  426 +
  427 +ALTER TABLE public.flashcards_user_user_permissions OWNER TO flashy;
  428 +
  429 +
  430 +CREATE SEQUENCE flashcards_user_user_permissions_id_seq
  431 + START WITH 1
  432 + INCREMENT BY 1
  433 + NO MINVALUE
  434 + NO MAXVALUE
  435 + CACHE 1;
  436 +
  437 +
  438 +ALTER TABLE public.flashcards_user_user_permissions_id_seq OWNER TO flashy;
  439 +
  440 +
  441 +ALTER SEQUENCE flashcards_user_user_permissions_id_seq OWNED BY flashcards_user_user_permissions.id;
  442 +
  443 +
  444 +
  445 +CREATE TABLE flashcards_userflashcard (
  446 + id integer NOT NULL,
  447 + pulled timestamp with time zone,
  448 + unpulled timestamp with time zone,
  449 + flashcard_id integer NOT NULL,
  450 + mask_id integer NOT NULL,
  451 + user_id integer NOT NULL
  452 +);
  453 +
  454 +
  455 +ALTER TABLE public.flashcards_userflashcard OWNER TO flashy;
  456 +
  457 +
  458 +CREATE SEQUENCE flashcards_userflashcard_id_seq
  459 + START WITH 1
  460 + INCREMENT BY 1
  461 + NO MINVALUE
  462 + NO MAXVALUE
  463 + CACHE 1;
  464 +
  465 +
  466 +ALTER TABLE public.flashcards_userflashcard_id_seq OWNER TO flashy;
  467 +
  468 +
  469 +ALTER SEQUENCE flashcards_userflashcard_id_seq OWNED BY flashcards_userflashcard.id;
  470 +
  471 +
  472 +
  473 +CREATE TABLE flashcards_userflashcardreview (
  474 + id integer NOT NULL,
  475 + "when" timestamp with time zone NOT NULL,
  476 + blanked_word character varying(8) NOT NULL,
  477 + response character varying(255),
  478 + correct boolean,
  479 + user_flashcard_id integer NOT NULL
  480 +);
  481 +
  482 +
  483 +ALTER TABLE public.flashcards_userflashcardreview OWNER TO flashy;
  484 +
  485 +
  486 +CREATE SEQUENCE flashcards_userflashcardreview_id_seq
  487 + START WITH 1
  488 + INCREMENT BY 1
  489 + NO MINVALUE
  490 + NO MAXVALUE
  491 + CACHE 1;
  492 +
  493 +
  494 +ALTER TABLE public.flashcards_userflashcardreview_id_seq OWNER TO flashy;
  495 +
  496 +
  497 +ALTER SEQUENCE flashcards_userflashcardreview_id_seq OWNED BY flashcards_userflashcardreview.id;
  498 +
  499 +
  500 +
  501 +CREATE TABLE flashcards_whitelistedaddress (
  502 + id integer NOT NULL,
  503 + email character varying(254) NOT NULL,
  504 + section_id integer NOT NULL
  505 +);
  506 +
  507 +
  508 +ALTER TABLE public.flashcards_whitelistedaddress OWNER TO flashy;
  509 +
  510 +
  511 +CREATE SEQUENCE flashcards_whitelistedaddress_id_seq
  512 + START WITH 1
  513 + INCREMENT BY 1
  514 + NO MINVALUE
  515 + NO MAXVALUE
  516 + CACHE 1;
  517 +
  518 +
  519 +ALTER TABLE public.flashcards_whitelistedaddress_id_seq OWNER TO flashy;
  520 +
  521 +
  522 +ALTER SEQUENCE flashcards_whitelistedaddress_id_seq OWNED BY flashcards_whitelistedaddress.id;
  523 +
  524 +
  525 +
  526 +CREATE TABLE simple_email_confirmation_emailaddress (
  527 + id integer NOT NULL,
  528 + email character varying(255) NOT NULL,
  529 + key character varying(40) NOT NULL,
  530 + set_at timestamp with time zone NOT NULL,
  531 + confirmed_at timestamp with time zone,
  532 + user_id integer NOT NULL
  533 +);
  534 +
  535 +
  536 +
  537 +
  538 +ALTER TABLE ONLY auth_group
  539 + ADD CONSTRAINT auth_group_name_key UNIQUE (name);
  540 +
  541 +
  542 +
  543 +ALTER TABLE ONLY auth_group_permissions
  544 + ADD CONSTRAINT auth_group_permissions_group_id_permission_id_key UNIQUE (group_id, permission_id);
  545 +
  546 +
  547 +
  548 +ALTER TABLE ONLY auth_group_permissions
  549 + ADD CONSTRAINT auth_group_permissions_pkey PRIMARY KEY (id);
  550 +
  551 +
  552 +
  553 +ALTER TABLE ONLY auth_group
  554 + ADD CONSTRAINT auth_group_pkey PRIMARY KEY (id);
  555 +
  556 +
  557 +
  558 +ALTER TABLE ONLY auth_permission
  559 + ADD CONSTRAINT auth_permission_content_type_id_codename_key UNIQUE (content_type_id, codename);
  560 +
  561 +
  562 +
  563 +ALTER TABLE ONLY auth_permission
  564 + ADD CONSTRAINT auth_permission_pkey PRIMARY KEY (id);
  565 +
  566 +
  567 +
  568 +ALTER TABLE ONLY django_admin_log
  569 + ADD CONSTRAINT django_admin_log_pkey PRIMARY KEY (id);
  570 +
  571 +
  572 +
  573 +ALTER TABLE ONLY django_content_type
  574 + ADD CONSTRAINT django_content_type_app_label_45f3b1d93ec8c61c_uniq UNIQUE (app_label, model);
  575 +
  576 +
  577 +
  578 +ALTER TABLE ONLY django_content_type
  579 + ADD CONSTRAINT django_content_type_pkey PRIMARY KEY (id);
  580 +
  581 +
  582 +
  583 +ALTER TABLE ONLY django_migrations
  584 + ADD CONSTRAINT django_migrations_pkey PRIMARY KEY (id);
  585 +
  586 +
  587 +
  588 +
  589 +
  590 +ALTER TABLE ONLY flashcards_flashcard
  591 + ADD CONSTRAINT flashcards_flashcard_pkey PRIMARY KEY (id);
  592 +
  593 +
  594 +
  595 +ALTER TABLE ONLY flashcards_flashcardmask
  596 + ADD CONSTRAINT flashcards_flashcardmask_pkey PRIMARY KEY (id);
  597 +
  598 +
  599 +
  600 +ALTER TABLE ONLY flashcards_flashcardreport
  601 + ADD CONSTRAINT flashcards_flashcardreport_pkey PRIMARY KEY (id);
  602 +
  603 +
  604 +
  605 +ALTER TABLE ONLY flashcards_flashcardreport
  606 + ADD CONSTRAINT flashcards_flashcardreport_user_id_33ed44e076ba0c26_uniq UNIQUE (user_id, flashcard_id);
  607 +
  608 +
  609 +
  610 +ALTER TABLE ONLY flashcards_lectureperiod
  611 + ADD CONSTRAINT flashcards_lectureperiod_pkey PRIMARY KEY (id);
  612 +
  613 +
  614 +
  615 +ALTER TABLE ONLY flashcards_lectureperiod
  616 + ADD CONSTRAINT flashcards_lectureperiod_section_id_64d9645909ab3722_uniq UNIQUE (section_id, start_time, week_day);
  617 +
  618 +
  619 +
  620 +ALTER TABLE ONLY flashcards_section
  621 + ADD CONSTRAINT flashcards_section_department_62472d9260ce7d87_uniq UNIQUE (department, course_num, quarter, instructor);
  622 +
  623 +
  624 +
  625 +ALTER TABLE ONLY flashcards_section
  626 + ADD CONSTRAINT flashcards_section_pkey PRIMARY KEY (id);
  627 +
  628 +
  629 +
  630 +ALTER TABLE ONLY flashcards_section_whitelist
  631 + ADD CONSTRAINT flashcards_section_whitelist_pkey PRIMARY KEY (id);
  632 +
  633 +
  634 +
  635 +ALTER TABLE ONLY flashcards_section_whitelist
  636 + ADD CONSTRAINT flashcards_section_whitelist_section_id_user_id_key UNIQUE (section_id, user_id);
  637 +
  638 +
  639 +
  640 +ALTER TABLE ONLY flashcards_user
  641 + ADD CONSTRAINT flashcards_user_email_key UNIQUE (email);
  642 +
  643 +
  644 +
  645 +ALTER TABLE ONLY flashcards_user_groups
  646 + ADD CONSTRAINT flashcards_user_groups_pkey PRIMARY KEY (id);
  647 +
  648 +
  649 +
  650 +ALTER TABLE ONLY flashcards_user_groups
  651 + ADD CONSTRAINT flashcards_user_groups_user_id_group_id_key UNIQUE (user_id, group_id);
  652 +
  653 +
  654 +
  655 +ALTER TABLE ONLY flashcards_user
  656 + ADD CONSTRAINT flashcards_user_pkey PRIMARY KEY (id);
  657 +
  658 +
  659 +
  660 +ALTER TABLE ONLY flashcards_user_sections
  661 + ADD CONSTRAINT flashcards_user_sections_pkey PRIMARY KEY (id);
  662 +
  663 +
  664 +
  665 +ALTER TABLE ONLY flashcards_user_sections
  666 + ADD CONSTRAINT flashcards_user_sections_user_id_section_id_key UNIQUE (user_id, section_id);
  667 +
  668 +
  669 +
  670 +ALTER TABLE ONLY flashcards_user_user_permissions
  671 + ADD CONSTRAINT flashcards_user_user_permissions_pkey PRIMARY KEY (id);
  672 +
  673 +
  674 +
  675 +ALTER TABLE ONLY flashcards_user_user_permissions
  676 + ADD CONSTRAINT flashcards_user_user_permissions_user_id_permission_id_key UNIQUE (user_id, permission_id);
  677 +
  678 +
  679 +
  680 +ALTER TABLE ONLY flashcards_userflashcard
  681 + ADD CONSTRAINT flashcards_userflashcard_pkey PRIMARY KEY (id);
  682 +
  683 +
  684 +
  685 +ALTER TABLE ONLY flashcards_userflashcard
  686 + ADD CONSTRAINT flashcards_userflashcard_user_id_15a77ea9fbc24533_uniq UNIQUE (user_id, flashcard_id);
  687 +
  688 +
  689 +
  690 +ALTER TABLE ONLY flashcards_userflashcardreview
  691 + ADD CONSTRAINT flashcards_userflashcardreview_pkey PRIMARY KEY (id);
  692 +
  693 +
  694 +
  695 +ALTER TABLE ONLY flashcards_whitelistedaddress
  696 + ADD CONSTRAINT flashcards_whitelistedaddress_pkey PRIMARY KEY (id);
  697 +
  698 +
  699 +
  700 +ALTER TABLE ONLY simple_email_confirmation_emailaddress
  701 + ADD CONSTRAINT simple_email_confirmation_emailad_user_id_4729ce83422361d3_uniq UNIQUE (user_id, email);
  702 +
  703 +
  704 +
  705 +ALTER TABLE ONLY simple_email_confirmation_emailaddress
  706 + ADD CONSTRAINT simple_email_confirmation_emailaddress_key_key UNIQUE (key);
  707 +
  708 +
  709 +
  710 +ALTER TABLE ONLY simple_email_confirmation_emailaddress
  711 + ADD CONSTRAINT simple_email_confirmation_emailaddress_pkey PRIMARY KEY (id);
  712 +
  713 +
  714 +
  715 +CREATE INDEX auth_group_name_253ae2a6331666e8_like ON auth_group USING btree (name varchar_pattern_ops);
  716 +
  717 +
  718 +
  719 +CREATE INDEX auth_group_permissions_0e939a4f ON auth_group_permissions USING btree (group_id);
  720 +
  721 +
  722 +
  723 +CREATE INDEX auth_group_permissions_8373b171 ON auth_group_permissions USING btree (permission_id);
  724 +
  725 +
  726 +
  727 +CREATE INDEX auth_permission_417f1b1c ON auth_permission USING btree (content_type_id);
  728 +
  729 +
  730 +
  731 +CREATE INDEX django_admin_log_417f1b1c ON django_admin_log USING btree (content_type_id);
  732 +
  733 +
  734 +
  735 +CREATE INDEX django_admin_log_e8701ad4 ON django_admin_log USING btree (user_id);
  736 +
  737 +
  738 +
  739 +CREATE INDEX django_session_de54fa62 ON django_session USING btree (expire_date);
  740 +
  741 +
  742 +
  743 +CREATE INDEX django_session_session_key_461cfeaa630ca218_like ON django_session USING btree (session_key varchar_pattern_ops);
  744 +
  745 +
  746 +
  747 +CREATE INDEX flashcards_flashcard_4024b9ac ON flashcards_flashcard USING btree (mask_id);
  748 +
  749 +
  750 +
  751 +CREATE INDEX flashcards_flashcard_4f331e2f ON flashcards_flashcard USING btree (author_id);
  752 +
  753 +
  754 +
  755 +CREATE INDEX flashcards_flashcard_730f6511 ON flashcards_flashcard USING btree (section_id);
  756 +
  757 +
  758 +
  759 +CREATE INDEX flashcards_flashcard_f69c16f1 ON flashcards_flashcard USING btree (previous_id);
  760 +
  761 +
  762 +
  763 +CREATE INDEX flashcards_flashcardreport_7c1f79fc ON flashcards_flashcardreport USING btree (flashcard_id);
  764 +
  765 +
  766 +
  767 +CREATE INDEX flashcards_flashcardreport_e8701ad4 ON flashcards_flashcardreport USING btree (user_id);
  768 +
  769 +
  770 +
  771 +CREATE INDEX flashcards_lectureperiod_730f6511 ON flashcards_lectureperiod USING btree (section_id);
  772 +
  773 +
  774 +
  775 +CREATE INDEX flashcards_section_whitelist_730f6511 ON flashcards_section_whitelist USING btree (section_id);
  776 +
  777 +
  778 +
  779 +CREATE INDEX flashcards_section_whitelist_e8701ad4 ON flashcards_section_whitelist USING btree (user_id);
  780 +
  781 +
  782 +
  783 +CREATE INDEX flashcards_user_email_14afda24ead1b594_like ON flashcards_user USING btree (email varchar_pattern_ops);
  784 +
  785 +
  786 +
  787 +CREATE INDEX flashcards_user_groups_0e939a4f ON flashcards_user_groups USING btree (group_id);
  788 +
  789 +
  790 +
  791 +CREATE INDEX flashcards_user_groups_e8701ad4 ON flashcards_user_groups USING btree (user_id);
  792 +
  793 +
  794 +
  795 +CREATE INDEX flashcards_user_sections_730f6511 ON flashcards_user_sections USING btree (section_id);
  796 +
  797 +
  798 +
  799 +CREATE INDEX flashcards_user_sections_e8701ad4 ON flashcards_user_sections USING btree (user_id);
  800 +
  801 +
  802 +
  803 +CREATE INDEX flashcards_user_user_permissions_8373b171 ON flashcards_user_user_permissions USING btree (permission_id);
  804 +
  805 +
  806 +
  807 +CREATE INDEX flashcards_user_user_permissions_e8701ad4 ON flashcards_user_user_permissions USING btree (user_id);
  808 +
  809 +
  810 +
  811 +CREATE INDEX flashcards_user_username_541562a44599e88b_like ON flashcards_user USING btree (username varchar_pattern_ops);
  812 +
  813 +
  814 +
  815 +CREATE INDEX flashcards_userflashcard_4024b9ac ON flashcards_userflashcard USING btree (mask_id);
  816 +
  817 +
  818 +
  819 +CREATE INDEX flashcards_userflashcard_7c1f79fc ON flashcards_userflashcard USING btree (flashcard_id);
  820 +
  821 +
  822 +
  823 +CREATE INDEX flashcards_userflashcard_e8701ad4 ON flashcards_userflashcard USING btree (user_id);
  824 +
  825 +
  826 +
  827 +CREATE INDEX flashcards_userflashcard_user_id_15a77ea9fbc24533_idx ON flashcards_userflashcard USING btree (user_id, flashcard_id);
  828 +
  829 +
  830 +
  831 +CREATE INDEX flashcards_userflashcardreview_850c205f ON flashcards_userflashcardreview USING btree (user_flashcard_id);
  832 +
  833 +
  834 +
  835 +CREATE INDEX flashcards_whitelistedaddress_730f6511 ON flashcards_whitelistedaddress USING btree (section_id);
  836 +
  837 +
  838 +
  839 +CREATE INDEX simple_email_confirmation_emailaddres_key_7cef87b4a5607977_like ON simple_email_confirmation_emailaddress USING btree (key varchar_pattern_ops);
  840 +
  841 +
  842 +
  843 +CREATE INDEX simple_email_confirmation_emailaddress_e8701ad4 ON simple_email_confirmation_emailaddress USING btree (user_id);
  844 +
  845 +
  846 +
  847 +ALTER TABLE ONLY auth_permission
  848 + ADD CONSTRAINT auth_content_type_id_508cf46651277a81_fk_django_content_type_id FOREIGN KEY (content_type_id) REFERENCES django_content_type(id) DEFERRABLE INITIALLY DEFERRED;
  849 +
  850 +
  851 +
  852 +ALTER TABLE ONLY auth_group_permissions
  853 + ADD CONSTRAINT auth_group_permissio_group_id_689710a9a73b7457_fk_auth_group_id FOREIGN KEY (group_id) REFERENCES auth_group(id) DEFERRABLE INITIALLY DEFERRED;
  854 +
  855 +
  856 +
  857 +ALTER TABLE ONLY auth_group_permissions
  858 + ADD CONSTRAINT auth_group_permission_id_1f49ccbbdc69d2fc_fk_auth_permission_id FOREIGN KEY (permission_id) REFERENCES auth_permission(id) DEFERRABLE INITIALLY DEFERRED;
  859 +
  860 +
  861 +
  862 +ALTER TABLE ONLY flashcards_userflashcardreview
  863 + ADD CONSTRAINT c7fb24e9ba5630e6a0a6e09a8db7bd8a FOREIGN KEY (user_flashcard_id) REFERENCES flashcards_userflashcard(id) DEFERRABLE INITIALLY DEFERRED;
  864 +
  865 +
  866 +
  867 +ALTER TABLE ONLY django_admin_log
  868 + ADD CONSTRAINT djan_content_type_id_697914295151027a_fk_django_content_type_id FOREIGN KEY (content_type_id) REFERENCES django_content_type(id) DEFERRABLE INITIALLY DEFERRED;
  869 +
  870 +
  871 +
  872 +ALTER TABLE ONLY django_admin_log
  873 + ADD CONSTRAINT django_admin_log_user_id_52fdd58701c5f563_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  874 +
  875 +
  876 +
  877 +ALTER TABLE ONLY flashcards_userflashcard
  878 + ADD CONSTRAINT flashc_flashcard_id_27191f1ce29d4f6e_fk_flashcards_flashcard_id FOREIGN KEY (flashcard_id) REFERENCES flashcards_flashcard(id) DEFERRABLE INITIALLY DEFERRED;
  879 +
  880 +
  881 +
  882 +ALTER TABLE ONLY flashcards_flashcardreport
  883 + ADD CONSTRAINT flashc_flashcard_id_540e99a32f8e7ce1_fk_flashcards_flashcard_id FOREIGN KEY (flashcard_id) REFERENCES flashcards_flashcard(id) DEFERRABLE INITIALLY DEFERRED;
  884 +
  885 +
  886 +
  887 +ALTER TABLE ONLY flashcards_userflashcard
  888 + ADD CONSTRAINT flashca_mask_id_11891dc686c95979_fk_flashcards_flashcardmask_id FOREIGN KEY (mask_id) REFERENCES flashcards_flashcardmask(id) DEFERRABLE INITIALLY DEFERRED;
  889 +
  890 +
  891 +
  892 +ALTER TABLE ONLY flashcards_flashcard
  893 + ADD CONSTRAINT flashca_mask_id_315fc31541014dcc_fk_flashcards_flashcardmask_id FOREIGN KEY (mask_id) REFERENCES flashcards_flashcardmask(id) DEFERRABLE INITIALLY DEFERRED;
  894 +
  895 +
  896 +
  897 +ALTER TABLE ONLY flashcards_flashcard
  898 + ADD CONSTRAINT flashca_previous_id_3cf24e79b530c8db_fk_flashcards_flashcard_id FOREIGN KEY (previous_id) REFERENCES flashcards_flashcard(id) DEFERRABLE INITIALLY DEFERRED;
  899 +
  900 +
  901 +
  902 +ALTER TABLE ONLY flashcards_flashcard
  903 + ADD CONSTRAINT flashcards__section_id_4127cb9d74c53ca_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section(id) DEFERRABLE INITIALLY DEFERRED;
  904 +
  905 +
  906 +
  907 +ALTER TABLE ONLY flashcards_flashcard
  908 + ADD CONSTRAINT flashcards_flas_author_id_605ad2783a84485_fk_flashcards_user_id FOREIGN KEY (author_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  909 +
  910 +
  911 +
  912 +ALTER TABLE ONLY flashcards_flashcardreport
  913 + ADD CONSTRAINT flashcards_flash_user_id_6c10819646f15401_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  914 +
  915 +
  916 +
  917 +ALTER TABLE ONLY flashcards_user_user_permissions
  918 + ADD CONSTRAINT flashcards_permission_id_5283cfc195698563_fk_auth_permission_id FOREIGN KEY (permission_id) REFERENCES auth_permission(id) DEFERRABLE INITIALLY DEFERRED;
  919 +
  920 +
  921 +
  922 +ALTER TABLE ONLY flashcards_section_whitelist
  923 + ADD CONSTRAINT flashcards_secti_user_id_1d1c9d98deba8a72_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  924 +
  925 +
  926 +
  927 +ALTER TABLE ONLY flashcards_whitelistedaddress
  928 + ADD CONSTRAINT flashcards_section_id_22918ec2e83b2f75_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section(id) DEFERRABLE INITIALLY DEFERRED;
  929 +
  930 +
  931 +
  932 +ALTER TABLE ONLY flashcards_lectureperiod
  933 + ADD CONSTRAINT flashcards_section_id_302c30eb724723f1_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section(id) DEFERRABLE INITIALLY DEFERRED;
  934 +
  935 +
  936 +
  937 +ALTER TABLE ONLY flashcards_section_whitelist
  938 + ADD CONSTRAINT flashcards_section_id_4e763ee4275cf523_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section(id) DEFERRABLE INITIALLY DEFERRED;
  939 +
  940 +
  941 +
  942 +ALTER TABLE ONLY flashcards_user_sections
  943 + ADD CONSTRAINT flashcards_section_id_5d49f31bd84d8f3a_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section(id) DEFERRABLE INITIALLY DEFERRED;
  944 +
  945 +
  946 +
  947 +ALTER TABLE ONLY flashcards_user_user_permissions
  948 + ADD CONSTRAINT flashcards_user__user_id_12a00980f5183829_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  949 +
  950 +
  951 +
  952 +ALTER TABLE ONLY flashcards_user_sections
  953 + ADD CONSTRAINT flashcards_user__user_id_534bccbf48772015_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  954 +
  955 +
  956 +
  957 +ALTER TABLE ONLY flashcards_user_groups
  958 + ADD CONSTRAINT flashcards_user_g_user_id_1f8520a79156ba5_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  959 +
  960 +
  961 +ALTER TABLE ONLY flashcards_user_groups
  962 + ADD CONSTRAINT flashcards_user_group_group_id_466553500229f1e_fk_auth_group_id FOREIGN KEY (group_id) REFERENCES auth_group(id) DEFERRABLE INITIALLY DEFERRED;
  963 +
  964 +
  965 +ALTER TABLE ONLY flashcards_userflashcard
  966 + ADD CONSTRAINT flashcards_userf_user_id_15c43eedfd53f472_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
  967 +
  968 +
  969 +ALTER TABLE ONLY simple_email_confirmation_emailaddress
  970 + ADD CONSTRAINT simple_email_con_user_id_725af1fcf343cca1_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;