Skip to content
Snippets Groups Projects
Commit ac0c299a authored by Bayu Samudra's avatar Bayu Samudra
Browse files

Merge branch 'course' into 'main'

Populated Course Data and Added Flavor Columns

See merge request !1
parents d032b968 4c341156
Branches
Tags
1 merge request!1Populated Course Data and Added Flavor Columns
Pipeline #53099 failed with stages
-- +migrate Up
CREATE TABLE public."faculty" (
id UUID DEFAULT uuid_generate_v4(),
name varchar(250) NOT NULL,
PRIMARY KEY (id)
);
ALTER TABLE public."major"
ADD COLUMN fac_id UUID NOT NULL,
ADD FOREIGN KEY (fac_id) REFERENCES public."faculty"(id);
ALTER TABLE public."course"
ADD COLUMN email varchar(100) NOT NULL,
ADD FOREIGN KEY (email) REFERENCES public."user"(email);
-- +migrate Down
ALTER TABLE public."course"
DROP COLUMN email;
ALTER TABLE public."major"
DROP COLUMN fac_id;
DROP TABLE public."faculty";
\ No newline at end of file
-- +migrate Up
ALTER TABLE public."faculty"
ADD COLUMN abbreviation VARCHAR(20) DEFAULT NULL;
ALTER TABLE public."major"
ADD COLUMN abbreviation VARCHAR(20) DEFAULT NULL;
ALTER TABLE public."course"
ADD COLUMN abbreviation VARCHAR(20) DEFAULT NULL,
ADD COLUMN lecturer VARCHAR(250) DEFAULT NULL;
-- +migrate StatementBegin
CREATE OR REPLACE FUNCTION assign_lecturer()
RETURNS TRIGGER
AS $assign$
BEGIN
IF NEW.lecturer is NULL THEN
NEW.lecturer = (SELECT name FROM public."user" WHERE email = NEW.email);
END IF;
RETURN NEW;
END;
$assign$ LANGUAGE plpgsql;
-- +migrate StatementEnd
CREATE TRIGGER assign_lecturer
BEFORE INSERT ON public."course"
FOR EACH ROW EXECUTE PROCEDURE assign_lecturer();
-- +migrate Down
DROP TRIGGER IF EXISTS assign_lecturer ON public."course"
DROP FUNCTION IF EXISTS assign_lecturer();
ALTER TABLE public."course"
DROP COLUMN abbreviation,
DROP COLUMN lecturer;
ALTER TABLE public."major"
DROP COLUMN abbreviation;
ALTER TABLE public."faculty"
DROP COLUMN abbreviation;
\ No newline at end of file
-- +migrate Up
UPDATE public."user" SET
name = 'Dr. Yani Widyani, S.T, M.T.'
WHERE email = 'contributor@example.com';
INSERT INTO public."faculty" ("name", "abbreviation")
VALUES
('Sekolah Teknik Elektro dan Informatika', 'STEI');
INSERT INTO public."major" ("name", "fac_id", "abbreviation")
VALUES
('Teknik Informatika', (SELECT id FROM public."faculty" WHERE abbreviation='STEI'), 'IF');
INSERT INTO public."course" ("id", "name", "major_id", "description", "email", "abbreviation")
VALUES
('IF3250', 'Proyek Perangkat Lunak', (SELECT id FROM public."major" WHERE abbreviation='IF'), 'Kuliah ini memberikan gambaran kompleksitas dan pengalaman mengenai pengembangan perangkat lunak skala besar. Mahasiswa memanfaatkan/ menggunakan berbagai platform, framework, dan tools yang biasa dipakai untuk proyek berskala besar. Kuliah ini juga memberikan pengetahuan rekayasa perangkat lunak tingkat lanjut, mencakup Domain Specific Language (DSL), Domain-oriented Design/Analysis/Architecture, Large Scale Software development, dan Performance Engineering.', 'contributor@example.com', 'PPL'),
('IF3270', 'Pembelajaran Mesin', (SELECT id FROM public."major" WHERE abbreviation='IF'), 'Kuliah ini membahas berbagai teknik pembelajaran oleh mesin serta pengenalan pola. Pendekatan yang diberikan mencakup supervised learning dan unsupervised learning.', 'contributor@example.com', 'ML');
-- +migrate Down
DELETE FROM public."course" WHERE id IN (
'IF3250',
'IF3270'
);
DELETE FROM public."major" WHERE abbreviation IN (
'IF'
);
DELETE FROM public."faculty" WHERE abbreviation IN (
'STEI'
);
UPDATE public."user" SET
name = 'contributor'
WHERE email = 'contributor@example.com';
\ No newline at end of file
-- +migrate Up
INSERT INTO public."user" ("email", "password", "name", "role", "is_activated")
VALUES
('ucok@example.com', '$2a$10$J4POz3KQESxzA.d9S8rHRu3ZuJSRdcJkVQcx1SRdMNQqtD8gHfccy', 'Ucok', 'student', true),
('udin@example.com', '$2a$10$J4POz3KQESxzA.d9S8rHRu3ZuJSRdcJkVQcx1SRdMNQqtD8gHfccy', 'Udin', 'student', false);
-- +migrate Down
DELETE FROM public."user" WHERE email IN (
'ucok@example.com',
'udin@example.com'
);
-- +migrate Up
ALTER TABLE public."course" ADD UNIQUE (abbreviation);
ALTER TABLE public."major" ADD UNIQUE (abbreviation);
ALTER TABLE public."faculty" ADD UNIQUE (abbreviation);
-- +migrate Down
ALTER TABLE public."course" DROP CONSTRAINT course_abbreviation_key;
ALTER TABLE public."major" DROP CONSTRAINT major_abbreviation_key;
ALTER TABLE public."faculty" DROP CONSTRAINT faculty_abbreviation_key;
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment