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
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.1'
id 'io.spring.dependency-management' version '1.1.5'
id 'org.springframework.boot' version '3.4.1'
id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.example'
Expand Down
13 changes: 13 additions & 0 deletions db/migrations/V1_0_0__create_initial_table.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,
director TEXT,
director_country TEXT,
star TEXT,
star_dob TEXT,
writer TEXT,
writer_email TEXT,
year INTEGER,
genre TEXT,
score int
);
5 changes: 5 additions & 0 deletions db/migrations/V2_0_0__create_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_stars_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,
dob TEXT
);
3 changes: 3 additions & 0 deletions db/migrations/V3_1_0__remove_stars_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_stars_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_writers_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_writers_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;
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);
4 changes: 4 additions & 0 deletions db/migrations/V5_0_0__create_genres_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS Genres (
id SERIAL PRIMARY KEY,
name TEXT
);
2 changes: 2 additions & 0 deletions db/migrations/V5_1_0__remove_genres_details_from_films.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ALTER TABLE Films
DROP COLUMN genre;
5 changes: 5 additions & 0 deletions db/migrations/V5_2_0__add_foreign_key_for_genres_to_films.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ALTER TABLE Films
ADD COLUMN genre_id INT;

ALTER TABLE Films
ADD CONSTRAINT fk_genre_id FOREIGN KEY (genre_id) REFERENCES Genres (id);
4 changes: 4 additions & 0 deletions db/migrations/V6_0_0__create_persons_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS persons (
id SERIAL PRIMARY KEY,
name TEXT
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
ALTER TABLE directors
DROP COLUMN name;

ALTER TABLE stars
DROP COLUMN name;

ALTER TABLE writers
DROP COLUMN name;
20 changes: 20 additions & 0 deletions db/migrations/V6_2_0__add_foreign_keys_to_relevant_tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
-- directors
ALTER TABLE directors
ADD COLUMN person_id INT;

ALTER TABLE directors
ADD CONSTRAINT fk_director_person_id FOREIGN KEY (person_id) REFERENCES Persons (id);

-- stars
ALTER TABLE stars
ADD COLUMN person_id INT;

ALTER TABLE stars
ADD CONSTRAINT fk_star_person_id FOREIGN KEY (person_id) REFERENCES Persons (id);

-- writers
ALTER TABLE writers
ADD COLUMN person_id INT;

ALTER TABLE writers
ADD CONSTRAINT fk_writer_person_id FOREIGN KEY (person_id) REFERENCES Persons (id);
11 changes: 11 additions & 0 deletions db/migrations/V7_0_0__create_casts_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
CREATE TABLE IF NOT EXISTS casts (
id SERIAL PRIMARY KEY,
film_id INTEGER,
star_id INTEGER,
CONSTRAINT fk_star_to_film_id
FOREIGN KEY(film_id)
REFERENCES films(id),
CONSTRAINT fk_star_cast_id
FOREIGN KEY(star_id)
REFERENCES stars(id)
);
8 changes: 8 additions & 0 deletions db/migrations/V7_1_0__swap_star_to_cast.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
ALTER TABLE films
DROP COLUMN star_id;

ALTER TABLE Films
ADD COLUMN cast_id INT;

ALTER TABLE Films
ADD CONSTRAINT fk_film_cast_id FOREIGN KEY (cast_id) REFERENCES Casts (id);
Empty file added db/migrations_core/.gitkeep
Empty file.
13 changes: 13 additions & 0 deletions db/migrations_core/V1_0_0__create_initial_table.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,
director TEXT,
director_country TEXT,
star TEXT,
star_dob TEXT,
writer TEXT,
writer_email TEXT,
year INTEGER,
genre TEXT,
score int
);
5 changes: 5 additions & 0 deletions db/migrations_core/V2_0_0__create_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
);
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_core/V3_0_0__create_stars_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,
dob TEXT
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ALTER TABLE Films
DROP COLUMN star,
DROP COLUMN star_dob;
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_core/V4_0_0__create_writers_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
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ALTER TABLE Films
DROP COLUMN writer,
DROP COLUMN writer_email;
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);
4 changes: 4 additions & 0 deletions db/migrations_core/V5_0_0__create_genres_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS Genres (
id SERIAL PRIMARY KEY,
name TEXT
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ALTER TABLE Films
DROP COLUMN genre;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ALTER TABLE Films
ADD COLUMN genre_id INT;

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