From 931e1766352630d7d6066f13cde8261dc6149c84 Mon Sep 17 00:00:00 2001 From: Oleksandr Korneiko Date: Thu, 19 Feb 2026 19:58:55 +0200 Subject: [PATCH] FIx db seed in docker compose --- database/install.sql | 2 -- database/seeds/001-install.sql | 15 +++++++++++++++ .../{structure.sql => seeds/002-structure.sql} | 0 database/{data.sql => seeds/003-data.sql} | 0 database/setup.sh | 6 +++--- docker-compose.yml | 9 +++++++-- 6 files changed, 25 insertions(+), 7 deletions(-) delete mode 100644 database/install.sql create mode 100644 database/seeds/001-install.sql rename database/{structure.sql => seeds/002-structure.sql} (100%) rename database/{data.sql => seeds/003-data.sql} (100%) diff --git a/database/install.sql b/database/install.sql deleted file mode 100644 index c8524cf2..00000000 --- a/database/install.sql +++ /dev/null @@ -1,2 +0,0 @@ -CREATE USER marcus WITH PASSWORD 'marcus'; -CREATE DATABASE application OWNER marcus; diff --git a/database/seeds/001-install.sql b/database/seeds/001-install.sql new file mode 100644 index 00000000..8dc6b511 --- /dev/null +++ b/database/seeds/001-install.sql @@ -0,0 +1,15 @@ +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'marcus') THEN + CREATE ROLE marcus LOGIN PASSWORD 'marcus'; + END IF; +END +$$; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_database WHERE datname = 'application') THEN + CREATE DATABASE application OWNER marcus; + END IF; +END +$$; diff --git a/database/structure.sql b/database/seeds/002-structure.sql similarity index 100% rename from database/structure.sql rename to database/seeds/002-structure.sql diff --git a/database/data.sql b/database/seeds/003-data.sql similarity index 100% rename from database/data.sql rename to database/seeds/003-data.sql diff --git a/database/setup.sh b/database/setup.sh index 5e36c2be..a386c5ce 100755 --- a/database/setup.sh +++ b/database/setup.sh @@ -1,3 +1,3 @@ -psql -f install.sql -U postgres -PGPASSWORD=marcus psql -d application -f structure.sql -U marcus -PGPASSWORD=marcus psql -d application -f data.sql -U marcus +psql -f ./seeds/001-install.sql -U postgres +PGPASSWORD=marcus psql -d application -f ./seeds/002-structure.sql -U marcus +PGPASSWORD=marcus psql -d application -f ./seeds/003-data.sql -U marcus diff --git a/docker-compose.yml b/docker-compose.yml index 572966a6..fa1a8208 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,8 +8,10 @@ services: - DB_HOST=pg-example - REDIS_HOST=redis-example depends_on: - - pg-example - - redis-example + pg-example: + condition: service_healthy + redis-example: + condition: service_started ports: - "127.0.0.1:8000:8000" - "127.0.0.1:8001:8001" @@ -25,8 +27,11 @@ services: - POSTGRES_DB=application volumes: - postgres_data:/var/lib/postgresql/data + - ./database/seeds:/docker-entrypoint-initdb.d:ro ports: - "127.0.0.1:5432:5432" + healthcheck: + test: ["CMD", "pg_isready", "-U", "marcus"] restart: always redis-example: