Compare View

switch
from
...
to
 
Commits (2)

Diff

Showing 2 changed files Side-by-side Diff

... ... @@ -9,10 +9,10 @@ all: built/ $(PNGS) $(PDFS) #built/screenshots/
9 9 built/:
10 10 mkdir -p built
11 11  
12   -built/schema_diagram.png:
13   - sqlt-diagram --color -c 3 -t png -o built/schema_diagram.png --gutter 60 --from PostgreSQL db_schema.sql --title "Flashy"
  12 +built/schema_diagram.png: built/
  13 + sqlt-diagram --color -c 2 -t png -o built/schema_diagram.png --gutter 200 --from SQLite db_schema.sql --title "Flashy"
14 14  
15   -built/schema_graph.png:
  15 +built/schema_graph.png: built/
16 16 sqlt-graph -o built/schema_graph.png --from PostgreSQL db_schema.sql
17 17  
18 18 built/%.png: %.dot
... ... @@ -24,7 +24,7 @@ built/%.png: screen_sequence_diagrams/%.dot
24 24 built/screen_sequence_diagram.pdf: built/ $(SCREEN_SEQUENCE_PNGS)
25 25 convert $(SCREEN_SEQUENCE_PNGS) built/screen_sequence_diagram.pdf
26 26  
27   -built/%.pdf: %.tex
  27 +built/%.pdf: %.tex built/
28 28 cd built/; pdflatex ../$<
29 29 cd built/; pdflatex ../$<
30 30 rm -f built/*.aux
db_schema.sql View file @ 8ca6059
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;
  1 +CREATE TABLE "flashcards_lectureperiod" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "start_time" time NOT NULL, "end_time" time NOT NULL, "section_id" integer NOT NULL REFERENCES "flashcards_section" ("id"), "week_day" integer NOT NULL, UNIQUE ("section_id", "start_time", "week_day"));
  2 +CREATE TABLE "flashcards_whitelistedaddress" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "email" varchar(254) NOT NULL, "section_id" integer NOT NULL REFERENCES "flashcards_section" ("id"));
  3 +CREATE TABLE "flashcards_section" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,"department" varchar(50) NOT NULL,"course_num" varchar(6) NOT NULL,"course_title" varchar(50) NOT NULL,"instructor" varchar(100) NOT NULL,"dept_abbr" varchar(10) NOT NULL,"quarter" varchar(4) NOT NULL);
  4 +CREATE TABLE "flashcards_user" (id integer NOT NULL PRIMARY KEY AUTOINCREMENT,"password" varchar(128) NOT NULL, "lastlogin" DATETIME,"is_superuser" bool NOT NULL,"username" varchar(30) NOT NULL,"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" TIMESTAMP NOT NULL, "confirmed_email" bool NOT NULL, "last_notified" TIMESTAMP, "registration_id" varchar(4096));
  5 +CREATE TABLE "flashcards_user_sections" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "user_id" integer NOT NULL REFERENCES "flashcards_user" ("id"), "section_id" integer NOT NULL REFERENCES "flashcards_section" ("id"), UNIQUE ("user_id", "section_id"));
  6 +CREATE TABLE "flashcards_userflashcardquiz" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "when" datetime NOT NULL, "response" varchar(255), "correct" bool, "user_flashcard_id" integer NOT NULL REFERENCES "flashcards_userflashcard" ("id"), "blanked_word" varchar(255) NOT NULL);
  7 +CREATE TABLE "flashcards_flashcard" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "text" varchar(180) NOT NULL, "pushed" datetime NOT NULL, "material_date" datetime NOT NULL, "is_hidden" bool NOT NULL, "hide_reason" varchar(255), "author_id" integer NOT NULL REFERENCES "flashcards_user" ("id"), "previous_id" integer REFERENCES "flashcards_flashcard" ("id"), "section_id" integer NOT NULL REFERENCES "flashcards_section" ("id"), "mask" varchar, "score" real NOT NULL);
  8 +CREATE TABLE "flashcards_userflashcard" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "pulled" datetime NOT NULL, "flashcard_id" integer NOT NULL REFERENCES "flashcards_flashcard" ("id"), "user_id" integer NOT NULL REFERENCES "flashcards_user" ("id"), "mask" varchar, "last_interval" integer NOT NULL, "last_response_factor" real NOT NULL, "next_review" datetime, UNIQUE ("user_id", "flashcard_id"));
  9 +CREATE TABLE "flashcards_flashcardhide" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "reason" varchar(255), "hidden" datetime NOT NULL, "flashcard_id" integer NOT NULL REFERENCES "flashcards_flashcard" ("id"), "user_id" integer NOT NULL REFERENCES "flashcards_user" ("id"), UNIQUE ("user_id", "flashcard_id"));
7 10  
  11 +CREATE TABLE "django_session" ("session_key" varchar(40) NOT NULL PRIMARY KEY, "session_data" text NOT NULL, "expire_date" datetime NOT NULL);
8 12  
9   -CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
10 13  
11 14  
12   -COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
13 15  
14 16  
15   -SET search_path = PUBLIC, pg_catalog;
16 17  
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   -
308   - user_id INTEGER NOT NULL,
309   - flashcard_id INTEGER NOT NULL
310   -);
311   -
312   -CREATE TABLE flashcards_userflashcardreview (
313   - id INTEGER NOT NULL,
314   - "when" TIMESTAMP NOT NULL,
315   - blanked_word CHARACTER VARYING(8) NOT NULL,
316   - response CHARACTER VARYING(255),
317   - correct BOOLEAN,
318   - user_flashcard_id INTEGER NOT NULL
319   -);
320   -
321   -CREATE TABLE flashcards_userflashcard (
322   - id INTEGER NOT NULL,
323   - user_id INTEGER NOT NULL,
324   - pulled TIMESTAMP,
325   - unpulled TIMESTAMP,
326   - flashcard_id INTEGER NOT NULL,
327   - mask_id INTEGER NOT NULL
328   -);
329   -
330   -
331   -
332   -
333   -CREATE TABLE flashcards_flashcardmask (
334   - id INTEGER NOT NULL,
335   - ranges CHARACTER VARYING(255) NOT NULL
336   -);
337   -
338   -
339   ---
340   --- CREATE TABLE simple_email_confirmation_emailaddress (
341   --- id integer NOT NULL,
342   --- email character varying(255) NOT NULL,
343   --- key character varying(40) NOT NULL,
344   --- set_at timestamp with time zone NOT NULL,
345   --- confirmed_at timestamp with time zone,
346   --- user_id integer NOT NULL
347   --- );
348   -
349   ---
350   ---
351   ---
352   --- ALTER TABLE ONLY auth_group
353   --- ADD CONSTRAINT auth_group_name_key UNIQUE (name);
354   ---
355   ---
356   ---
357   --- ALTER TABLE ONLY auth_group_permissions
358   --- ADD CONSTRAINT auth_group_permissions_group_id_permission_id_key UNIQUE (group_id, permission_id);
359   ---
360   ---
361   ---
362   --- ALTER TABLE ONLY auth_group_permissions
363   --- ADD CONSTRAINT auth_group_permissions_pkey PRIMARY KEY (id);
364   ---
365   ---
366   ---
367   --- ALTER TABLE ONLY auth_group
368   --- ADD CONSTRAINT auth_group_pkey PRIMARY KEY (id);
369   ---
370   ---
371   ---
372   --- ALTER TABLE ONLY auth_permission
373   --- ADD CONSTRAINT auth_permission_content_type_id_codename_key UNIQUE (content_type_id, codename);
374   ---
375   ---
376   ---
377   --- ALTER TABLE ONLY auth_permission
378   --- ADD CONSTRAINT auth_permission_pkey PRIMARY KEY (id);
379   ---
380   ---
381   ---
382   --- ALTER TABLE ONLY django_admin_log
383   --- ADD CONSTRAINT django_admin_log_pkey PRIMARY KEY (id);
384   ---
385   ---
386   ---
387   --- ALTER TABLE ONLY django_content_type
388   --- ADD CONSTRAINT django_content_type_app_label_45f3b1d93ec8c61c_uniq UNIQUE (app_label, model);
389   ---
390   ---
391   ---
392   --- ALTER TABLE ONLY django_content_type
393   --- ADD CONSTRAINT django_content_type_pkey PRIMARY KEY (id);
394   ---
395   ---
396   ---
397   --- ALTER TABLE ONLY django_migrations
398   --- ADD CONSTRAINT django_migrations_pkey PRIMARY KEY (id);
399   ---
400   ---
401   ---
402   -
403   -
404   -ALTER TABLE ONLY flashcards_flashcard
405   -ADD CONSTRAINT flashcards_flashcard_pkey PRIMARY KEY (id);
406   -
407   -
408   -ALTER TABLE ONLY flashcards_flashcardmask
409   -ADD CONSTRAINT flashcards_flashcardmask_pkey PRIMARY KEY (id);
410   -
411   -
412   -ALTER TABLE ONLY flashcards_flashcardreport
413   -ADD CONSTRAINT flashcards_flashcardreport_pkey PRIMARY KEY (id);
414   -
415   -
416   -ALTER TABLE ONLY flashcards_flashcardreport
417   -ADD CONSTRAINT flashcards_flashcardreport_user_id_33ed44e076ba0c26_uniq UNIQUE (user_id, flashcard_id);
418   -
419   -
420   -ALTER TABLE ONLY flashcards_lectureperiod
421   -ADD CONSTRAINT flashcards_lectureperiod_pkey PRIMARY KEY (id);
422   -
423   -
424   -ALTER TABLE ONLY flashcards_lectureperiod
425   -ADD CONSTRAINT flashcards_lectureperiod_section_id_64d9645909ab3722_uniq UNIQUE (section_id, start_time, week_day);
426   -
427   -
428   -ALTER TABLE ONLY flashcards_section
429   -ADD CONSTRAINT flashcards_section_department_62472d9260ce7d87_uniq UNIQUE (department, course_num, quarter, instructor);
430   -
431   -
432   -ALTER TABLE ONLY flashcards_section
433   -ADD CONSTRAINT flashcards_section_pkey PRIMARY KEY (id);
434   -
435   -
436   -ALTER TABLE ONLY flashcards_section_whitelist
437   -ADD CONSTRAINT flashcards_section_whitelist_pkey PRIMARY KEY (id);
438   -
439   -
440   -ALTER TABLE ONLY flashcards_section_whitelist
441   -ADD CONSTRAINT flashcards_section_whitelist_section_id_user_id_key UNIQUE (section_id, user_id);
442   -
443   -
444   -ALTER TABLE ONLY flashcards_user
445   -ADD CONSTRAINT flashcards_user_email_key UNIQUE (email);
446   -
447   ---
448   ---
449   --- ALTER TABLE ONLY flashcards_user_groups
450   --- ADD CONSTRAINT flashcards_user_groups_pkey PRIMARY KEY (id);
451   ---
452   ---
453   ---
454   --- ALTER TABLE ONLY flashcards_user_groups
455   --- ADD CONSTRAINT flashcards_user_groups_user_id_group_id_key UNIQUE (user_id, group_id);
456   ---
457   ---
458   -
459   -ALTER TABLE ONLY flashcards_user
460   -ADD CONSTRAINT flashcards_user_pkey PRIMARY KEY (id);
461   -
462   -
463   -ALTER TABLE ONLY flashcards_user_sections
464   -ADD CONSTRAINT flashcards_user_sections_pkey PRIMARY KEY (id);
465   -
466   -
467   -ALTER TABLE ONLY flashcards_user_sections
468   -ADD CONSTRAINT flashcards_user_sections_user_id_section_id_key UNIQUE (user_id, section_id);
469   -
470   -
471   ---
472   --- ALTER TABLE ONLY flashcards_user_user_permissions
473   --- ADD CONSTRAINT flashcards_user_user_permissions_pkey PRIMARY KEY (id);
474   ---
475   ---
476   ---
477   --- ALTER TABLE ONLY flashcards_user_user_permissions
478   --- ADD CONSTRAINT flashcards_user_user_permissions_user_id_permission_id_key UNIQUE (user_id, permission_id);
479   ---
480   ---
481   -
482   -ALTER TABLE ONLY flashcards_userflashcard
483   -ADD CONSTRAINT flashcards_userflashcard_pkey PRIMARY KEY (id);
484   -
485   -
486   -ALTER TABLE ONLY flashcards_userflashcard
487   -ADD CONSTRAINT flashcards_userflashcard_user_id_15a77ea9fbc24533_uniq UNIQUE (user_id, flashcard_id);
488   -
489   -
490   -ALTER TABLE ONLY flashcards_userflashcardreview
491   -ADD CONSTRAINT flashcards_userflashcardreview_pkey PRIMARY KEY (id);
492   -
493   -
494   -ALTER TABLE ONLY flashcards_whitelistedaddress
495   -ADD CONSTRAINT flashcards_whitelistedaddress_pkey PRIMARY KEY (id);
496   -
497   -
498   ---
499   --- ALTER TABLE ONLY simple_email_confirmation_emailaddress
500   --- ADD CONSTRAINT simple_email_confirmation_emailad_user_id_4729ce83422361d3_uniq UNIQUE (user_id, email);
501   ---
502   ---
503   ---
504   --- ALTER TABLE ONLY simple_email_confirmation_emailaddress
505   --- ADD CONSTRAINT simple_email_confirmation_emailaddress_key_key UNIQUE (key);
506   ---
507   ---
508   ---
509   --- ALTER TABLE ONLY simple_email_confirmation_emailaddress
510   --- ADD CONSTRAINT simple_email_confirmation_emailaddress_pkey PRIMARY KEY (id);
511   ---
512   ---
513   --- ALTER TABLE ONLY auth_permission
514   --- 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;
515   ---
516   ---
517   ---
518   --- ALTER TABLE ONLY auth_group_permissions
519   --- ADD CONSTRAINT auth_group_permissio_group_id_689710a9a73b7457_fk_auth_group_id FOREIGN KEY (group_id) REFERENCES auth_group(id) DEFERRABLE INITIALLY DEFERRED;
520   ---
521   ---
522   ---
523   --- ALTER TABLE ONLY auth_group_permissions
524   --- ADD CONSTRAINT auth_group_permission_id_1f49ccbbdc69d2fc_fk_auth_permission_id FOREIGN KEY (permission_id) REFERENCES auth_permission(id) DEFERRABLE INITIALLY DEFERRED;
525   ---
526   -
527   -
528   -ALTER TABLE ONLY flashcards_userflashcardreview
529   -ADD CONSTRAINT c7fb24e9ba5630e6a0a6e09a8db7bd8a FOREIGN KEY (user_flashcard_id) REFERENCES flashcards_userflashcard (id) DEFERRABLE INITIALLY DEFERRED;
530   -
531   -
532   ---
533   --- ALTER TABLE ONLY django_admin_log
534   --- 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;
535   ---
536   ---
537   ---
538   --- ALTER TABLE ONLY django_admin_log
539   --- ADD CONSTRAINT django_admin_log_user_id_52fdd58701c5f563_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
540   ---
541   ---
542   -
543   -ALTER TABLE ONLY flashcards_userflashcard
544   -ADD CONSTRAINT flashc_flashcard_id_27191f1ce29d4f6e_fk_flashcards_flashcard_id FOREIGN KEY (flashcard_id) REFERENCES flashcards_flashcard (id) DEFERRABLE INITIALLY DEFERRED;
545   -
546   -ALTER TABLE ONLY flashcards_flashcardreport
547   -ADD CONSTRAINT flashc_flashcard_id_540e99a32f8e7ce1_fk_flashcards_flashcard_id FOREIGN KEY (flashcard_id) REFERENCES flashcards_flashcard (id) DEFERRABLE INITIALLY DEFERRED;
548   -
549   -
550   -ALTER TABLE ONLY flashcards_userflashcard
551   -ADD CONSTRAINT flashca_mask_id_11891dc686c95979_fk_flashcards_flashcardmask_id FOREIGN KEY (mask_id) REFERENCES flashcards_flashcardmask (id) DEFERRABLE INITIALLY DEFERRED;
552   -
553   -
554   -ALTER TABLE ONLY flashcards_flashcard
555   -ADD CONSTRAINT flashca_mask_id_315fc31541014dcc_fk_flashcards_flashcardmask_id FOREIGN KEY (mask_id) REFERENCES flashcards_flashcardmask (id) DEFERRABLE INITIALLY DEFERRED;
556   -
557   -
558   -ALTER TABLE ONLY flashcards_flashcard
559   -ADD CONSTRAINT flashca_previous_id_3cf24e79b530c8db_fk_flashcards_flashcard_id FOREIGN KEY (previous_id) REFERENCES flashcards_flashcard (id) DEFERRABLE INITIALLY DEFERRED;
560   -
561   -
562   -ALTER TABLE ONLY flashcards_flashcard
563   -ADD CONSTRAINT flashcards__section_id_4127cb9d74c53ca_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
564   -
565   -
566   -ALTER TABLE ONLY flashcards_flashcard
567   -ADD CONSTRAINT flashcards_flas_author_id_605ad2783a84485_fk_flashcards_user_id FOREIGN KEY (author_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
568   -
569   -
570   -ALTER TABLE ONLY flashcards_flashcardreport
571   -ADD CONSTRAINT flashcards_flash_user_id_6c10819646f15401_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
572   -
573   -
574   ---
575   --- ALTER TABLE ONLY flashcards_user_user_permissions
576   --- ADD CONSTRAINT flashcards_permission_id_5283cfc195698563_fk_auth_permission_id FOREIGN KEY (permission_id) REFERENCES auth_permission(id) DEFERRABLE INITIALLY DEFERRED;
577   ---
578   -
579   -
580   -ALTER TABLE ONLY flashcards_section_whitelist
581   -ADD CONSTRAINT flashcards_secti_user_id_1d1c9d98deba8a72_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
582   -
583   -
584   -ALTER TABLE ONLY flashcards_whitelistedaddress
585   -ADD CONSTRAINT flashcards_section_id_22918ec2e83b2f75_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
586   -
587   -
588   -ALTER TABLE ONLY flashcards_lectureperiod
589   -ADD CONSTRAINT flashcards_section_id_302c30eb724723f1_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
590   -
591   -
592   -ALTER TABLE ONLY flashcards_section_whitelist
593   -ADD CONSTRAINT flashcards_section_id_4e763ee4275cf523_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
594   -
595   -
596   -ALTER TABLE ONLY flashcards_user_sections
597   -ADD CONSTRAINT flashcards_section_id_5d49f31bd84d8f3a_fk_flashcards_section_id FOREIGN KEY (section_id) REFERENCES flashcards_section (id) DEFERRABLE INITIALLY DEFERRED;
598   -
599   -
600   ---
601   --- ALTER TABLE ONLY flashcards_user_user_permissions
602   --- ADD CONSTRAINT flashcards_user__user_id_12a00980f5183829_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
603   ---
604   ---
605   ---
606   -ALTER TABLE ONLY flashcards_user_sections
607   -ADD CONSTRAINT flashcards_user__user_id_534bccbf48772015_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
608   -
609   -
610   -ALTER TABLE ONLY flashcards_userflashcard
611   -ADD CONSTRAINT flashcards_userf_user_id_15c43eedfd53f472_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user (id) DEFERRABLE INITIALLY DEFERRED;
612   -
613   ---
614   --- ALTER TABLE ONLY simple_email_confirmation_emailaddress
615   --- ADD CONSTRAINT simple_email_con_user_id_725af1fcf343cca1_fk_flashcards_user_id FOREIGN KEY (user_id) REFERENCES flashcards_user(id) DEFERRABLE INITIALLY DEFERRED;
616   ---