From 0e18bb92bd7d30e1e83c68edd40021efd4ae4952 Mon Sep 17 00:00:00 2001 From: debbyalmadea <almadeaputri@gmail.com> Date: Wed, 27 Sep 2023 17:50:20 +0700 Subject: [PATCH] add: migration script on init --- .env.example | 3 ++- docker-compose.yml | 7 +++++-- src/migration/db.sql | 28 ++++------------------------ src/{migration => seed}/seed.sql | 0 4 files changed, 11 insertions(+), 27 deletions(-) rename src/{migration => seed}/seed.sql (100%) diff --git a/.env.example b/.env.example index 95ccfc5..0892687 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,3 @@ POSTGRES_USER= -POSTGRES_PASSWORD= \ No newline at end of file +POSTGRES_PASSWORD= +POSTGRES_DB= \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index c6c25d1..e29b689 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,10 +12,13 @@ services: restart: always volumes: - "./db:/var/lib/postgresql/data" + - "./src/migration:/docker-entrypoint-initdb.d/" ports: - "5432:5432" - env_file: - - .env + environment: + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB} adminer: image: adminer:latest restart: always diff --git a/src/migration/db.sql b/src/migration/db.sql index 498f690..c0503ef 100644 --- a/src/migration/db.sql +++ b/src/migration/db.sql @@ -51,7 +51,7 @@ CREATE TABLE IF NOT EXISTS catalogs ( CHECK (category IN ('ANIME', 'DRAMA')) ); -CREATE OR REPLACE FUNCTION user_updated_at() +CREATE OR REPLACE FUNCTION updated_at() RETURNS TRIGGER LANGUAGE PLPGSQL AS $$ @@ -62,20 +62,10 @@ END; $$; CREATE OR REPLACE TRIGGER t_user_updated_at BEFORE UPDATE -ON users FOR EACH ROW EXECUTE PROCEDURE user_updated_at(); - -CREATE OR REPLACE FUNCTION catalog_updated_at() -RETURNS TRIGGER -LANGUAGE PLPGSQL -AS $$ -BEGIN - NEW.updated_at = NOW(); - return NEW; -END; -$$; +ON users FOR EACH ROW EXECUTE PROCEDURE updated_at(); CREATE OR REPLACE TRIGGER t_catalog_updated_at BEFORE UPDATE -ON catalogs FOR EACH ROW EXECUTE PROCEDURE catalog_updated_at(); +ON catalogs FOR EACH ROW EXECUTE PROCEDURE updated_at(); DO $$ BEGIN @@ -101,18 +91,8 @@ CREATE TABLE IF NOT EXISTS watchlists ( FOREIGN KEY (user_id) REFERENCES users(id) ); -CREATE OR REPLACE FUNCTION watchlist_updated_at() -RETURNS TRIGGER -LANGUAGE PLPGSQL -AS $$ -BEGIN - NEW.updated_at = NOW(); - return NEW; -END; -$$; - CREATE OR REPLACE TRIGGER t_watchlist_updated_at BEFORE UPDATE -ON watchlists FOR EACH ROW EXECUTE PROCEDURE watchlist_updated_at(); +ON watchlists FOR EACH ROW EXECUTE PROCEDURE updated_at(); CREATE TABLE IF NOT EXISTS watchlist_catalog ( watchlist_id integer NOT NULL, diff --git a/src/migration/seed.sql b/src/seed/seed.sql similarity index 100% rename from src/migration/seed.sql rename to src/seed/seed.sql -- GitLab