diff --git a/migrations/development/20230401130532-update-material.sql b/migrations/development/20230401130532-update-material.sql new file mode 100644 index 0000000000000000000000000000000000000000..b739bd7857c582f7bde3b4f428d3bf759907e35f --- /dev/null +++ b/migrations/development/20230401130532-update-material.sql @@ -0,0 +1,8 @@ + +-- +migrate Up +ALTER TABLE material + ADD COLUMN week INT; + +-- +migrate Down +ALTER TABLE material + DROP COLUMN week; \ No newline at end of file diff --git a/migrations/development/20230401130806-update-quiz.sql b/migrations/development/20230401130806-update-quiz.sql new file mode 100644 index 0000000000000000000000000000000000000000..a2e012658962aa68b06109f1e7437e29a68417c6 --- /dev/null +++ b/migrations/development/20230401130806-update-quiz.sql @@ -0,0 +1,47 @@ + +-- +migrate Up +DROP TABLE quiz_take_choice_answer; +DROP TABLE quiz_choice_option; +DROP TABLE quiz_problem; + +ALTER TABLE quiz + ADD COLUMN quiz_path TEXT; + +-- +migrate Down + +ALTER TABLE quiz + DROP COLUMN quiz_path; + +CREATE TABLE public."quiz_problem" ( + id UUID DEFAULT uuid_generate_v4(), + statement TEXT NOT NULL, + "type" PROBLEM_TYPE NOT NULL, + quiz_id UUID NOT NULL, + PRIMARY KEY(id), + FOREIGN KEY(quiz_id) + REFERENCES public."quiz"(id) +); + +CREATE TABLE public."quiz_choice_option" ( + id UUID DEFAULT uuid_generate_v4(), + quiz_problem_id UUID NOT NULL, + statement TEXT NOT NULL, + is_answer BOOLEAN DEFAULT false, + PRIMARY KEY(id, quiz_problem_id), + FOREIGN KEY (quiz_problem_id) + REFERENCES public."quiz_problem"(id) + ON DELETE CASCADE +); + + +CREATE TABLE public."quiz_take_choice_answer" ( + quiz_take_id UUID NOT NULL, + answer_choice_id UUID NOT NULL, + quiz_problem_id UUID NOT NULL, + PRIMARY KEY (quiz_take_id, quiz_problem_id), + FOREIGN KEY (quiz_take_id) + REFERENCES public."quiz_take"(id) + ON DELETE CASCADE ON UPDATE CASCADE, + FOREIGN KEY (answer_choice_id, quiz_problem_id) + REFERENCES public."quiz_choice_option"(id, quiz_problem_id) +);