Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions db/migrations/V1_0_0__initial_table_creation.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
CREATE TABLE IF NOT EXISTS Films(
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
director TEXT,
director_country TEXT,
star TEXT,
star_DOB TEXT,
writer TEXT,
writer_email TEXT,
year INT,
genre TEXT,
score INT
);
5 changes: 5 additions & 0 deletions db/migrations/V2_0_0__create_a_directors_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
CREATE TABLE IF NOT EXISTS Directors (
id SERIAL PRIMARY KEY,
name TEXT,
country TEXT
);
3 changes: 3 additions & 0 deletions db/migrations/V2_1_0__remove_directors_details_from_films.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ALTER TABLE Films
DROP COLUMN director,
DROP COLUMN director_country;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ALTER TABLE Films
ADD COLUMN director_id INT;

ALTER TABLE Films
ADD CONSTRAINT fk_director_id FOREIGN KEY (director_id) REFERENCES Directors (id);
5 changes: 5 additions & 0 deletions db/migrations/V3_0_0__create_a_star_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
CREATE TABLE IF NOT EXISTS Stars (
id SERIAL PRIMARY KEY,
name TEXT,
date_of_birth TEXT
);
3 changes: 3 additions & 0 deletions db/migrations/V3_1_0__remove_star_details_from_films.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ALTER TABLE Films
DROP COLUMN star,
DROP COLUMN star_DOB;
5 changes: 5 additions & 0 deletions db/migrations/V3_2_0__add_foreign_key_for_star_to_films.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ALTER TABLE Films
ADD COLUMN star_id INT;

ALTER TABLE Films
ADD CONSTRAINT fk_star_id FOREIGN KEY (star_id) REFERENCES Stars (id);
5 changes: 5 additions & 0 deletions db/migrations/V4_0_0__create_a_writer_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
CREATE TABLE IF NOT EXISTS Writers (
id SERIAL PRIMARY KEY,
name TEXT,
email TEXT
);
3 changes: 3 additions & 0 deletions db/migrations/V4_1_0__remove_writer_details_from_films.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ALTER TABLE Films
DROP COLUMN writer,
DROP COLUMN writer_email;
5 changes: 5 additions & 0 deletions db/migrations/V4_2_0__add_foreign_key_for_writer_to_films.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ALTER TABLE Films
ADD COLUMN writer_id INT;

ALTER TABLE Films
ADD CONSTRAINT fk_writer_id FOREIGN KEY (writer_id) REFERENCES Writers (id);
12 changes: 12 additions & 0 deletions db/migrations/V5_0_0__add_director_data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
INSERT INTO Directors (name, country)
VALUES
('Stanley Kubrick','USA'),
('George Lucas', 'USA'),
('Robert Mulligan', 'USA'),
('James Cameron', 'Canada'),
('David Lean', 'UK'),
('Anthony Mann','USA'),
('Theodoros Angelopoulos', 'Greece'),
('Paul Verhoeven', 'Netherlands'),
('Krzysztof Kieslowski', 'Poland'),
('Jean-Paul Rappeneau', 'France');
12 changes: 12 additions & 0 deletions db/migrations/V5_1_0__add_star_data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
INSERT INTO Stars (name, date_of_birth)
VALUES
('Keir Dullea','30/05/1936'),
('Mark Hamill', '25/09/1951'),
('Gregory Peck', '05/04/1916'),
('Leonardo DiCaprio', '11/11/1974'),
('Julie Christie', '14/04/1940'),
('Charlton Heston','04/10/1923'),
('Manos Katrakis', '14/08/1908'),
('Rutger Hauer', '23/01/1944'),
('Juliette Binoche', '09/03/1964'),
('Gerard Depardieu', '27/12/1948');
12 changes: 12 additions & 0 deletions db/migrations/V5_2_0__add_writer_data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
INSERT INTO Writers (name, email)
VALUES
('Arthur C Clarke','[email protected]'),
('George Lucas', '[email protected]'),
('Harper Lee', '[email protected]'),
('James Cameron', '[email protected]'),
('Boris Pasternak', '[email protected]'),
('Frederick Frank','[email protected]'),
('Theodoros Angelopoulos', '[email protected]'),
('Erik Hazelhoff Roelfzema', '[email protected]'),
('Krzysztof Kieslowski', '[email protected]'),
('Edmond Rostand', '[email protected]');
12 changes: 12 additions & 0 deletions db/migrations/V5_3_0__add_film_data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
INSERT INTO Films (title, year, genre, score, director_id, star_id, writer_id)
VALUES
('2001: A Space Odyssey',1968, 'Science Fiction', 10, 1, 1, 1),
('Star Wars: A New Hope', 1977, 'Science Fiction', 7, 2, 2, 2),
('To Kill A Mockingbird', 1962, 'Drama', 10, 3, 3,3),
('Titanic', 1997,'Romance', 5, 4, 4,4),
('Dr Zhivago',1965, 'Historical', 8, 5,5,5),
('El Cid',1961,'Historical',6,6,6,6),
('Voyage to Cythera',1984, 'Drama', 8,7,7,7),
('Soldier of Orange', 1977,'Thriller', 8, 8,8,8),
('Three Colours: Blue',1993, 'Drama',8, 9,9,9),
('Cyrano de Bergerac',1990, 'Historical', 9,10,10,10);
7 changes: 7 additions & 0 deletions db/migrations/V6_0_0__create_a_persons_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CREATE TABLE IF NOT EXISTS Persons (
id SERIAL PRIMARY KEY,
name TEXT,
date_of_birth TEXT,
country TEXT,
email TEXT
);
3 changes: 3 additions & 0 deletions db/migrations/V6_1_0__move_directors_into_persons_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
INSERT INTO Persons (name, country)
SELECT name, country
FROM directors;
11 changes: 11 additions & 0 deletions db/migrations/V6_2_0__move_stars_into_persons_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
UPDATE Persons p
SET date_of_birth = s.date_of_birth
FROM stars s
WHERE p.name = s.name;

INSERT INTO Persons (name,date_of_birth)
SELECT s.name, s.date_of_birth
FROM stars s
WHERE NOT EXISTS (
SELECT 1 FROM persons p WHERE p.name = s.name
);
11 changes: 11 additions & 0 deletions db/migrations/V6_3_0__move_writers_into_persons_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
UPDATE Persons p
SET email = w.email
FROM writers w
WHERE p.name = w.name;

INSERT INTO Persons (name,email)
SELECT w.name, w.email
FROM writers w
WHERE NOT EXISTS (
SELECT 1 FROM persons p WHERE p.name = w.name
);
30 changes: 30 additions & 0 deletions db/migrations/V6_4_0__link_films_to_persons.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
ALTER TABLE Films DROP CONSTRAINT fk_director_id;
ALTER TABLE Films DROP CONSTRAINT fk_writer_id;
ALTER TABLE Films DROP CONSTRAINT fk_star_id;

UPDATE Films f
SET director_id = p.id
FROM Directors d
Join Persons p on p.name = d.name
WHERE f.director_id = d.id;
--

UPDATE Films f
SET star_id = p.id
FROM Stars s
Join Persons p on p.name = s.name
WHERE f.star_id = s.id;

UPDATE Films f
SET writer_id = p.id
FROM Writers w
Join Persons p on p.name = w.name
WHERE f.writer_id = w.id;

--
--INSERT INTO Pers (name,email)
--SELECT w.name, w.email
--FROM writers w
--WHERE NOT EXISTS (
-- SELECT 1 FROM persons p WHERE p.name = w.name
--);
9 changes: 9 additions & 0 deletions db/migrations/V6_5_0__foreign_key_to_persons.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
ALTER TABLE Films
ADD CONSTRAINT fk_director_id FOREIGN KEY (director_id) REFERENCES Persons (id);

ALTER TABLE Films
ADD CONSTRAINT fk_writer_id FOREIGN KEY (writer_id) REFERENCES Persons (id);

ALTER TABLE Films
ADD CONSTRAINT fk_star_id FOREIGN KEY (star_id) REFERENCES Persons (id);

5 changes: 5 additions & 0 deletions db/migrations/V6_6_0__drop_tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
DROP TABLE Writers;

DROP TABLE Stars;

DROP TABLE Directors;