From 850c006d46d554c752486be65b7fbf203428f5e9 Mon Sep 17 00:00:00 2001 From: lbenedar Date: Tue, 17 Mar 2026 17:44:27 +0300 Subject: [PATCH] ch6 --- migrations/000001_create_movies_table.down.sql | 1 + migrations/000001_create_movies_table.up.sql | 9 +++++++++ migrations/000002_add_movies_check_constraints.down.sql | 5 +++++ migrations/000002_add_movies_check_constraints.up.sql | 5 +++++ 4 files changed, 20 insertions(+) create mode 100644 migrations/000001_create_movies_table.down.sql create mode 100644 migrations/000001_create_movies_table.up.sql create mode 100644 migrations/000002_add_movies_check_constraints.down.sql create mode 100644 migrations/000002_add_movies_check_constraints.up.sql 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);