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_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: ${POSTGRES_ADMIN}
|
POSTGRES_USER: ${POSTGRES_USER}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_ADMIN_PASS}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_DB: ${POSTGRES_DB}
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
PGDATA: /var/lib/postgresql/data/pg_data
|
PGDATA: /var/lib/postgresql/data/pg_data
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_PATH}:/var/lib/postgresql/data
|
- ${POSTGRES_PATH}:/var/lib/postgresql/data
|
||||||
|
- ${POSTGRES_PATH}/initdb:/docker-entrypoint-initdb.d
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432
|
- 5432:5432
|
||||||
|
|
||||||
@@ -28,8 +29,8 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
POSTGRES_HOST: db
|
POSTGRES_HOST: db
|
||||||
POSTGRES_DB: ${POSTGRES_DB}
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
POSTGRES_USER: ${POSTGRES_USER}
|
POSTGRES_USER: ${POSTGRES_API_USER}
|
||||||
POSTGRES_PASS: ${POSTGRES_PASSWORD}
|
POSTGRES_PASS: ${POSTGRES_API_PASSWORD}
|
||||||
EXPOSED_PORT: ${EXPOSED_PORT}
|
EXPOSED_PORT: ${EXPOSED_PORT}
|
||||||
DEBUG: true
|
DEBUG: true
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: ${POSTGRES_ADMIN}
|
POSTGRES_USER: ${POSTGRES_USER}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_ADMIN_PASS}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_DB: ${POSTGRES_DB}
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
PGDATA: /var/lib/postgresql/data/pg_data
|
PGDATA: /var/lib/postgresql/data/pg_data
|
||||||
volumes:
|
volumes:
|
||||||
@@ -21,8 +21,8 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
POSTGRES_HOST: db
|
POSTGRES_HOST: db
|
||||||
POSTGRES_DB: ${POSTGRES_DB}
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
POSTGRES_USER: ${POSTGRES_USER}
|
POSTGRES_USER: ${POSTGRES_API_USER}
|
||||||
POSTGRES_PASS: ${POSTGRES_PASSWORD}
|
POSTGRES_PASS: ${POSTGRES_API_PASSWORD}
|
||||||
EXPOSED_PORT: ${EXPOSED_PORT}
|
EXPOSED_PORT: ${EXPOSED_PORT}
|
||||||
ports:
|
ports:
|
||||||
- ${EXPOSED_PORT}:8080
|
- ${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"."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';
|
COMMENT ON COLUMN "public"."anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
|
||||||
|
|
||||||
-- @block create table personaldaten
|
-- @block create table personaldaten
|
||||||
CREATE TABLE "public"."personal_daten" (
|
CREATE TABLE "public"."personal_daten" (
|
||||||
"personal_nummer" SERIAL PRIMARY KEY,
|
"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"."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"."card_uid" IS 'RFID-Karten-UID';
|
||||||
COMMENT ON COLUMN "public"."personal_daten"."hauptbeschaeftigung_ort" IS 'Chemnitz:1 Sayda:2';
|
COMMENT ON COLUMN "public"."personal_daten"."hauptbeschaeftigung_ort" IS 'Chemnitz:1 Sayda:2';
|
||||||
|
|
||||||
|
|
||||||
-- @block drop tables
|
-- @block drop tables
|
||||||
DROP TABLE IF EXISTS "public"."anwesenheit";
|
DROP TABLE IF EXISTS "public"."anwesenheit";
|
||||||
DROP TABLE IF EXISTS "public"."personal_daten";
|
DROP TABLE IF EXISTS "public"."personal_daten";
|
||||||
|
|
||||||
|
|
||||||
-- @block insert into personal_daten
|
-- @block insert into personal_daten
|
||||||
INSERT INTO personal_daten (
|
INSERT INTO personal_daten (
|
||||||
personal_nummer,
|
personal_nummer,
|
||||||
@@ -53,6 +58,7 @@ VALUES (
|
|||||||
'test_card',
|
'test_card',
|
||||||
'1'
|
'1'
|
||||||
);
|
);
|
||||||
|
|
||||||
-- @block select
|
-- @block select
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM personal_daten;
|
FROM personal_daten;
|
||||||
|
|||||||
Reference in New Issue
Block a user