diff --git a/migrations/development/20230329064016-delete-course-contributor.sql b/migrations/development/20230329064016-delete-course-contributor.sql new file mode 100644 index 0000000000000000000000000000000000000000..d3f391c45f617508e4711d3500a9faad6b25d9b2 --- /dev/null +++ b/migrations/development/20230329064016-delete-course-contributor.sql @@ -0,0 +1,43 @@ + +-- +migrate Up +ALTER TABLE material + DROP CONSTRAINT IF EXISTS material_course_id_creator_email_fkey; +ALTER TABLE quiz + DROP CONSTRAINT IF EXISTS quiz_course_id_creator_email_fkey; + +DROP TABLE IF EXISTS course_contributor; + +ALTER TABLE material + ADD FOREIGN KEY (creator_email) REFERENCES public."user"(email); + +ALTER TABLE quiz + ADD FOREIGN KEY (creator_email) REFERENCES public."user"(email); + + +-- +migrate Down + +ALTER TABLE material + DROP CONSTRAINT IF EXISTS material_creator_email_fkey; + +ALTER TABLE quiz + DROP CONSTRAINT IF EXISTS quiz_creator_email_fkey; + +CREATE TABLE public."course_contributor" ( + course_id varchar(30) NOT NULL, + email varchar(100) NOT NULL, + PRIMARY KEY (course_id, email), + FOREIGN KEY (course_id) + REFERENCES public."course"(id) + ON UPDATE CASCADE ON DELETE CASCADE, + FOREIGN KEY (email) REFERENCES public."user"(email) ON DELETE CASCADE +); + +ALTER TABLE material + ADD FOREIGN KEY (course_id, creator_email) + REFERENCES public."course_contributor"(course_id, email) + ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE quiz + ADD FOREIGN KEY (course_id, creator_email) + REFERENCES public."course_contributor"(course_id, email) + ON DELETE CASCADE ON UPDATE CASCADE;