diff --git a/migrations/000001_create_movies_table.down.sql b/migrations/000001_create_movies_table.down.sql new file mode 100644 index 0000000..3983e77 --- /dev/null +++ b/migrations/000001_create_movies_table.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS movies; \ No newline at end of file diff --git a/migrations/000001_create_movies_table.up.sql b/migrations/000001_create_movies_table.up.sql new file mode 100644 index 0000000..8fdf100 --- /dev/null +++ b/migrations/000001_create_movies_table.up.sql @@ -0,0 +1,9 @@ +CREATE TABLE IF NOT EXISTS movies ( + id bigserial PRIMARY KEY, + created_at timestamp(0) with time zone NOT NULL DEFAULT NOW(), + title text NOT NULL, + year integer NOT NULL, + runtime integer NOT NULL, + genres text[] NOT NULL, + version integer NOT NULL DEFAULT 1 +); \ No newline at end of file diff --git a/migrations/000002_add_movies_check_constraints.down.sql b/migrations/000002_add_movies_check_constraints.down.sql new file mode 100644 index 0000000..c1574de --- /dev/null +++ b/migrations/000002_add_movies_check_constraints.down.sql @@ -0,0 +1,5 @@ +ALTER TABLE movies DROP CONSTRAINT IF EXISTS movies_runtime_check; + +ALTER TABLE movies DROP CONSTRAINT IF EXISTS movies_year_check; + +ALTER TABLE movies DROP CONSTRAINT IF EXISTS genres_length_check; \ No newline at end of file diff --git a/migrations/000002_add_movies_check_constraints.up.sql b/migrations/000002_add_movies_check_constraints.up.sql new file mode 100644 index 0000000..1b849bd --- /dev/null +++ b/migrations/000002_add_movies_check_constraints.up.sql @@ -0,0 +1,5 @@ +ALTER TABLE movies ADD CONSTRAINT movies_runtime_check CHECK (runtime >= 0); + +ALTER TABLE movies ADD CONSTRAINT movies_year_check CHECK (year BETWEEN 1888 AND date_part('year', now())); + +ALTER TABLE movies ADD CONSTRAINT genres_length_check CHECK (array_length(genres, 1) BETWEEN 1 AND 5);