prepared for postgres in docker

This commit is contained in:
Pit-Storm 2019-11-02 16:28:22 +01:00
parent 0c24b93605
commit 1f5a5ab95e
6 changed files with 61 additions and 12 deletions

2
.env Normal file
View file

@ -0,0 +1,2 @@
COMPOSE_FILE=docker-compose.dev.yml
COMPOSE_PROJECT_NAME=candymat

4
backend/.env-backend Normal file
View file

@ -0,0 +1,4 @@
POSTGRES_PASSWORD=postgres!dev
POSTGRES_USER=candymat
POSTGRES_DB=candymat_db
POSTGRES_SCHEMA=candymat_data

View file

@ -0,0 +1,6 @@
FROM postgres:11.5
COPY ./sql/* /docker-entrypoint-initdb.d/
RUN localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8
ENV LANG de_DE.utf8

View file

@ -1,5 +1,10 @@
/connect candymat_db
-- Create schema for candymat_data
CREATE SCHEMA candymat_data;
-- Create table for users
CREATE TABLE public."user"
CREATE TABLE candymat_data."user"
(
login character varying(8) primary key,
name character varying(300),
@ -8,7 +13,7 @@ CREATE TABLE public."user"
);
-- Create table for user groups
CREATE TABLE public."group"
CREATE TABLE candymat_data."group"
(
id serial primary key,
name character varying(300) UNIQUE,
@ -16,16 +21,16 @@ CREATE TABLE public."group"
);
-- Create table for relation of users and groups
CREATE TABLE public.user_group
CREATE TABLE candymat_data.user_group
(
group_id integer REFERENCES public."group" (id) ON UPDATE CASCADE ON DELETE CASCADE,
user_login character varying(8) REFERENCES public."user" (login) ON UPDATE CASCADE ON DELETE CASCADE,
group_id integer REFERENCES candymat_data."group" (id) ON UPDATE CASCADE ON DELETE CASCADE,
user_login character varying(8) REFERENCES candymat_data."user" (login) ON UPDATE CASCADE ON DELETE CASCADE,
primary key (group_id, user_login)
);
-- Create table for catgeories
CREATE TABLE public.category
-- Create table for categories
CREATE TABLE candymat_data.category
(
id serial primary key,
title character varying(300) UNIQUE NOT NULL,
@ -33,19 +38,19 @@ CREATE TABLE public.category
);
-- Create table for questions
CREATE TABLE public.question
CREATE TABLE candymat_data.question
(
id serial primary key,
category_id integer REFERENCES public."category" (id) ON UPDATE CASCADE ON DELETE SET NULL,
category_id integer REFERENCES candymat_data"category" (id) ON UPDATE CASCADE ON DELETE SET NULL,
text character varying(3000) NOT NULL,
description character varying(5000)
);
-- Create table for answers
CREATE TABLE public.answer
CREATE TABLE candymat_data.answer
(
question_id integer REFERENCES public."question" (id) ON UPDATE CASCADE ON DELETE CASCADE,
user_login character varying(8) REFERENCES public."user" ON UPDATE CASCADE ON DELETE CASCADE,
question_id integer REFERENCES candymat_data."question" (id) ON UPDATE CASCADE ON DELETE CASCADE,
user_login character varying(8) REFERENCES candymat_data."user" ON UPDATE CASCADE ON DELETE CASCADE,
position integer NOT NULL,
text character varying(5000),
primary key (question_id, user_login)

15
docker-compose.dev.yml Normal file
View file

@ -0,0 +1,15 @@
version: '3.1'
services:
postgres:
image: candymat-postgres:11.5
build:
dockerfile: ./backend/Dockerfile.postgres
context: ./backend/
env_file: ./backend/.env-backend
ports:
- "5432:5432"
restart: always
networks:
- backend

17
docker-compose.prod.yml Normal file
View file

@ -0,0 +1,17 @@
version: '3.1'
services:
postgres:
image: candymat-postgres:11.5
build:
dockerfile: ./backend/Dockerfile.postgres
context: ./backend/
env_file: ./backend/.env-backend
ports:
- "5432:5432"
restart: always
volumes:
- "db-data:/var/lib/postgresql/data"
networks:
- backend