fixed createSchema.sql syntax, added container name

This commit is contained in:
j-weissen 2022-11-29 11:23:44 +01:00
parent dc06005113
commit 576f4a4333
3 changed files with 13 additions and 12 deletions

View file

@ -1,4 +1,3 @@
FROM postgres:15 FROM postgres:15-alpine
RUN mkdir /docker-entrypoint-initdb.d COPY createSchema.sql /docker-entrypoint-initdb.d/createSchema.sql
COPY createSchema.sql /docker-entrypoint-initdb.d

View file

@ -1,14 +1,15 @@
CREATE TABLE "user" ( CREATE TABLE "user" (
username VARCHAR(32) PRIMARY KEY username VARCHAR(32) PRIMARY KEY
) );
CREATE TABLE game ( CREATE TABLE game (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
score INTEGER NOT NULL, score INTEGER NOT NULL,
playtime TIME NOT NULL, playtime TIME NOT NULL,
date DATE NOT NULL, date DATE NOT NULL,
username VARCHAR(32) NOT NULL FOREIGN KEY REFERENCES "user" username VARCHAR(32) NOT NULL,
) FOREIGN KEY (username) REFERENCES "user"
);
CREATE VIEW user_data AS ( CREATE VIEW user_data AS (
SELECT SELECT
@ -20,20 +21,20 @@ CREATE VIEW user_data AS (
count(*) AS games_played count(*) AS games_played
FROM game FROM game
GROUP BY username GROUP BY username
) );
CREATE VIEW lb_highscore AS ( CREATE VIEW lb_highscore AS (
SELECT username, max(score) AS highscore FROM game GROUP BY username ORDER BY highscore DESC SELECT username, max(score) AS highscore FROM game GROUP BY username ORDER BY highscore DESC
) );
CREATE VIEW lb_highscore AS ( CREATE VIEW lb_highscore AS (
SELECT username, sum(score) AS total_score, FROM game GROUP BY username ORDER BY total_score DESC SELECT username, sum(score) AS total_score FROM game GROUP BY username ORDER BY total_score DESC
) );
CREATE VIEW lb_total_playtime AS ( CREATE VIEW lb_total_playtime AS (
SELECT username, sum(playtime) AS total_playtime FROM game GROUP BY username ORDER BY total_playtime DESC SELECT username, sum(playtime) AS total_playtime FROM game GROUP BY username ORDER BY total_playtime DESC
) );
CREATE VIEW lb_average_score AS ( CREATE VIEW lb_average_score AS (
SELECT username, avg(score) AS average_score FROM game GROUP BY username ORDER BY average_score DESC SELECT username, avg(score) AS average_score FROM game GROUP BY username ORDER BY average_score DESC
) );

View file

@ -3,6 +3,7 @@ version: '3.1'
services: services:
db: db:
build: backend/db build: backend/db
container_name: postgres-db
environment: environment:
POSTGRES_DB: rr POSTGRES_DB: rr
POSTGRES_USER: postgres POSTGRES_USER: postgres