From bcb2b1bc2030760162b855ab82ea8d1fc81d3df0 Mon Sep 17 00:00:00 2001 From: Matthew Grove Date: Fri, 24 Feb 2023 19:44:17 +0000 Subject: [PATCH] [FEAT] Transition to PostgreSQL database in another Docker container --- breccia_mapper/settings.py | 11 +++++++++-- docker-compose.yml | 22 ++++++++++++++++++++-- requirements.txt | 3 ++- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/breccia_mapper/settings.py b/breccia_mapper/settings.py index 2104e0f..8926e03 100644 --- a/breccia_mapper/settings.py +++ b/breccia_mapper/settings.py @@ -288,7 +288,14 @@ BACKGROUND_COLOR = '#' + config('BACKGROUND_COLOR', 'ffffff') # https://docs.djangoproject.com/en/2.2/ref/settings/#databases DATABASES = { - 'default': dj_database_url.parse('sqlite:///' + str(BASE_DIR.joinpath('db.sqlite3'))) + 'default' : { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'breccia-mapper', + 'USER': 'breccia-mapper', + 'PASSWORD': config('DB_PASSWORD'), + 'HOST': 'db', + 'PORT': '5432', + } } # Django DBBackup @@ -487,7 +494,7 @@ CONSTANCE_CONFIG = { 'Step 3', 'Homepage card #3 title'), 'HOMEPAGE_CARD_3_DESCRIPTION': ( - 'Use the network view to build new relationships', + 'Use the network view to analyse relationships', 'Homepage card #3 description'), 'HOMEPAGE_CARD_3_ICON': ( 'diagram-project', diff --git a/docker-compose.yml b/docker-compose.yml index 3eedd02..63a25fc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,9 +11,11 @@ services: env_file: - .env volumes: - - ./db.sqlite3:/app/db.sqlite3:z - static_files:/app/static - media_files:/app/media + depends_on: + db: + condition: service_healthy caddy: image: caddy:2 @@ -25,15 +27,31 @@ services: - ./Caddyfile:/etc/caddy/Caddyfile:z # Caddy serves static files collected by Django - static_files:/srv/static:ro - - media_files:/srv/media:ro + - media_files:/srv/media - ./icon-192x192.png:/srv/media/icon-192x192.png:ro - caddy_data:/data - caddy_config:/config depends_on: - server + db: + image: postgres:15.2-alpine + restart: unless-stopped + environment: + POSTGRES_DB: 'breccia-mapper' + POSTGRES_USER: 'breccia-mapper' + POSTGRES_PASSWORD: ${DB_PASSWORD} + volumes: + - postgres_data:/var/lib/postgresql/data/ + healthcheck: + test: ["CMD-SHELL", "pg_isready -U breccia-mapper"] + interval: 5s + timeout: 5s + retries: 5 + volumes: caddy_data: caddy_config: static_files: media_files: + postgres_data: diff --git a/requirements.txt b/requirements.txt index 8dbcec7..4c25737 100755 --- a/requirements.txt +++ b/requirements.txt @@ -47,4 +47,5 @@ wrapt==1.14.1 Pillow==9.4.0 django-allauth django-inlinecss-redux -django-bootstrap-customizer \ No newline at end of file +django-bootstrap-customizer +psycopg2-binary \ No newline at end of file