CHANGE: added db initialization script
This commit is contained in:
35
DB/initdb/01_create_tables.sql
Normal file
35
DB/initdb/01_create_tables.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
-- ----------------------------
|
||||
-- Table structure for anwesenheit
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "anwesenheit";
|
||||
CREATE TABLE "anwesenheit" (
|
||||
"counter_id" bigserial PRIMARY KEY,
|
||||
"timestamp" timestamp(6),
|
||||
"card_uid" varchar(255),
|
||||
"check_in_out" int2,
|
||||
"geraet_id" int2
|
||||
);
|
||||
COMMENT ON COLUMN "anwesenheit"."check_in_out" IS '1=Check In 2=Check Out , 3=Check in Manuell, 4=Check out manuell255=Automatic Check Out';
|
||||
COMMENT ON COLUMN "anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for personal_daten
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "personal_daten";
|
||||
CREATE TABLE "personal_daten" (
|
||||
"personal_nummer" int4 NOT NULL PRIMARY KEY,
|
||||
"aktiv_beschaeftigt" bool,
|
||||
"vorname" varchar(255),
|
||||
"nachname" varchar(255),
|
||||
"geburtsdatum" date,
|
||||
"plz" varchar(255),
|
||||
"adresse" varchar(255),
|
||||
"geschlecht" int2,
|
||||
"card_uid" varchar(255),
|
||||
"hauptbeschaeftigungs_ort" int2,
|
||||
"arbeitszeit_per_tag" float4,
|
||||
"arbeitszeit_min_start" time(6),
|
||||
"arbeitszeit_max_ende" time(6),
|
||||
"vorgesetzter_pers_nr" int4
|
||||
);
|
||||
COMMENT ON COLUMN "personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers';
|
||||
13
DB/initdb/02_create_user.sh
Normal file
13
DB/initdb/02_create_user.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
set -e # Exit on error
|
||||
|
||||
echo "Creating PostgreSQL user and setting permissions..."
|
||||
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE USER $POSTGRES_API_USER WITH ENCRYPTED PASSWORD '$POSTGRES_API_PASSWORD';
|
||||
GRANT CONNECT ON DATABASE $POSTGRES_DB TO $POSTGRES_API_USER;
|
||||
GRANT USAGE ON SCHEMA public TO $POSTGRES_API_USER;
|
||||
GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO $POSTGRES_API_USER;
|
||||
EOSQL
|
||||
|
||||
echo "User creation and permissions setup complete!"
|
||||
@@ -6,12 +6,13 @@ services:
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_ADMIN}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_ADMIN_PASS}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
PGDATA: /var/lib/postgresql/data/pg_data
|
||||
volumes:
|
||||
- ${POSTGRES_PATH}:/var/lib/postgresql/data
|
||||
- ${POSTGRES_PATH}/initdb:/docker-entrypoint-initdb.d
|
||||
ports:
|
||||
- 5432:5432
|
||||
|
||||
@@ -28,8 +29,8 @@ services:
|
||||
environment:
|
||||
POSTGRES_HOST: db
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASS: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_USER: ${POSTGRES_API_USER}
|
||||
POSTGRES_PASS: ${POSTGRES_API_PASSWORD}
|
||||
EXPOSED_PORT: ${EXPOSED_PORT}
|
||||
DEBUG: true
|
||||
ports:
|
||||
|
||||
@@ -6,8 +6,8 @@ services:
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_ADMIN}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_ADMIN_PASS}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
PGDATA: /var/lib/postgresql/data/pg_data
|
||||
volumes:
|
||||
@@ -21,8 +21,8 @@ services:
|
||||
environment:
|
||||
POSTGRES_HOST: db
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASS: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_USER: ${POSTGRES_API_USER}
|
||||
POSTGRES_PASS: ${POSTGRES_API_PASSWORD}
|
||||
EXPOSED_PORT: ${EXPOSED_PORT}
|
||||
ports:
|
||||
- ${EXPOSED_PORT}:8080
|
||||
|
||||
6
db.sql
6
db.sql
@@ -8,6 +8,7 @@ CREATE TABLE "public"."anwesenheit" (
|
||||
);
|
||||
COMMENT ON COLUMN "public"."anwesenheit"."check_in_out" IS '1=Check In 2=Check Out 255=Automatic Check Out';
|
||||
COMMENT ON COLUMN "public"."anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
|
||||
|
||||
-- @block create table personaldaten
|
||||
CREATE TABLE "public"."personal_daten" (
|
||||
"personal_nummer" SERIAL PRIMARY KEY,
|
||||
@@ -25,9 +26,13 @@ COMMENT ON COLUMN "public"."personal_daten"."akiv_beschaeftig" IS 'derzeit aktiv
|
||||
COMMENT ON COLUMN "public"."personal_daten"."geschlecht" IS 'w:1 m:2 div:3 kA:null ';
|
||||
COMMENT ON COLUMN "public"."personal_daten"."card_uid" IS 'RFID-Karten-UID';
|
||||
COMMENT ON COLUMN "public"."personal_daten"."hauptbeschaeftigung_ort" IS 'Chemnitz:1 Sayda:2';
|
||||
|
||||
|
||||
-- @block drop tables
|
||||
DROP TABLE IF EXISTS "public"."anwesenheit";
|
||||
DROP TABLE IF EXISTS "public"."personal_daten";
|
||||
|
||||
|
||||
-- @block insert into personal_daten
|
||||
INSERT INTO personal_daten (
|
||||
personal_nummer,
|
||||
@@ -53,6 +58,7 @@ VALUES (
|
||||
'test_card',
|
||||
'1'
|
||||
);
|
||||
|
||||
-- @block select
|
||||
SELECT *
|
||||
FROM personal_daten;
|
||||
|
||||
Reference in New Issue
Block a user