dev/actions #26
1
.gitignore
vendored
1
.gitignore
vendored
@@ -36,3 +36,4 @@ DB/pg_data
|
|||||||
.vscode
|
.vscode
|
||||||
|
|
||||||
node_modules
|
node_modules
|
||||||
|
atlas.hcl
|
||||||
|
|||||||
@@ -98,16 +98,3 @@ CREATE TABLE "s_abwesenheit_typen" (
|
|||||||
-- Adds crypto extension
|
-- Adds crypto extension
|
||||||
|
|
||||||
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Insert example data
|
|
||||||
-- ----------------------------
|
|
||||||
|
|
||||||
INSERT INTO "s_personal_daten" ("personal_nummer", "aktiv_beschaeftigt", "vorname", "nachname", "geburtsdatum", "plz", "adresse", "geschlecht", "card_uid", "hauptbeschaeftigungs_ort", "arbeitszeit_per_tag", "arbeitszeit_min_start", "arbeitszeit_max_ende", "vorgesetzter_pers_nr") VALUES
|
|
||||||
(123, 't', 'Max', 'Mustermann', '2003-02-01', '08963', 'Altenburger Str. 44A', 1, 'acde-edca', 1, 7.5, '07:00:00', '20:00:00', 0);
|
|
||||||
|
|
||||||
INSERT INTO "user_password" ("personal_nummer", "pass_hash") VALUES
|
|
||||||
(123, crypt('max_pass', gen_salt('bf')));
|
|
||||||
|
|
||||||
INSERT INTO "s_anwesenheit_typen" ("anwesenheit_id", "anwesenheit_name") VALUES (1, 'Büro');
|
|
||||||
INSERT INTO "s_abwesenheit_typen" ("abwesenheit_id", "abwesenheit_name") VALUES (1, 'Urlaub'), (2, 'Krank'), (3, 'Kurzarbeit');
|
|
||||||
8
DB/initdb/03_sample_data.sql
Normal file
8
DB/initdb/03_sample_data.sql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
INSERT INTO "s_personal_daten" ("personal_nummer", "aktiv_beschaeftigt", "vorname", "nachname", "geburtsdatum", "plz", "adresse", "geschlecht", "card_uid", "hauptbeschaeftigungs_ort", "arbeitszeit_per_tag", "arbeitszeit_min_start", "arbeitszeit_max_ende", "vorgesetzter_pers_nr") VALUES
|
||||||
|
(123, 't', 'Max', 'Mustermann', '2003-02-01', '08963', 'Altenburger Str. 44A', 1, 'acde-edca', 1, 7.5, '07:00:00', '20:00:00', 0);
|
||||||
|
|
||||||
|
INSERT INTO "user_password" ("personal_nummer", "pass_hash") VALUES
|
||||||
|
(123, crypt('max_pass', gen_salt('bf')));
|
||||||
|
|
||||||
|
INSERT INTO "s_anwesenheit_typen" ("anwesenheit_id", "anwesenheit_name") VALUES (1, 'Büro');
|
||||||
|
INSERT INTO "s_abwesenheit_typen" ("abwesenheit_id", "abwesenheit_name") VALUES (1, 'Urlaub'), (2, 'Krank'), (3, 'Kurzarbeit');
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
POSTGRES_USER=root
|
POSTGRES_USER=root
|
||||||
POSTGRES_PASSWORD=very_secure
|
POSTGRES_PASSWORD=very_secure
|
||||||
POSTGRES_API_USER=api_nuter
|
POSTGRES_API_USER=api_nutzer
|
||||||
POSTGRES_API_PASSWORD=password
|
POSTGRES_API_PASS=password
|
||||||
POSTGRES_PATH=../DB
|
POSTGRES_PATH=../DB
|
||||||
POSTGRES_DB=arbeitszeitmessung
|
POSTGRES_DB=arbeitszeitmessung
|
||||||
EXPOSED_PORT=8000
|
EXPOSED_PORT=8000
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
# The "dev" environment represents our local testings.
|
# The "dev" environment represents our local testings.
|
||||||
env "local" {
|
env "local" {
|
||||||
url = "postgres://root:very_secure@:5432/arbeitszeitmessung?search_path=public&sslmode=disable"
|
url = "postgres://user:password@:5432/database?search_path=public&sslmode=disable"
|
||||||
migration {
|
migration {
|
||||||
dir = "file://migrations"
|
dir = "file://migrations"
|
||||||
format = golang-migrate
|
format = golang-migrate
|
||||||
}
|
}
|
||||||
dev = "docker://postgres/16/dev?search_path=public"
|
dev = "docker://postgres/16/dev?search_path=public"
|
||||||
src = "file://schema.sql"
|
src = "file://DB/initdb/01_schema.sql"
|
||||||
}
|
}
|
||||||
16
migrations/20250802065143_initial.down.sql
Normal file
16
migrations/20250802065143_initial.down.sql
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
-- reverse: create "wochen_report" table
|
||||||
|
DROP TABLE "wochen_report";
|
||||||
|
-- reverse: create "user_password" table
|
||||||
|
DROP TABLE "user_password";
|
||||||
|
-- reverse: set comment to column: "geschlecht" on table: "personal_daten"
|
||||||
|
COMMENT ON COLUMN "personal_daten"."geschlecht" IS NULL;
|
||||||
|
-- reverse: create "personal_daten" table
|
||||||
|
DROP TABLE "personal_daten";
|
||||||
|
-- reverse: set comment to column: "geraet_id" on table: "anwesenheit"
|
||||||
|
COMMENT ON COLUMN "anwesenheit"."geraet_id" IS NULL;
|
||||||
|
-- reverse: set comment to column: "check_in_out" on table: "anwesenheit"
|
||||||
|
COMMENT ON COLUMN "anwesenheit"."check_in_out" IS NULL;
|
||||||
|
-- reverse: create "anwesenheit" table
|
||||||
|
DROP TABLE "anwesenheit";
|
||||||
|
-- reverse: create "abwesenheit" table
|
||||||
|
DROP TABLE "abwesenheit";
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
-- Create "abwesenheit" table
|
-- create "abwesenheit" table
|
||||||
CREATE TABLE "abwesenheit" (
|
CREATE TABLE "abwesenheit" (
|
||||||
"counter_id" bigserial NOT NULL,
|
"counter_id" bigserial NOT NULL,
|
||||||
"card_uid" character varying(255) NULL,
|
"card_uid" character varying(255) NULL,
|
||||||
@@ -6,21 +6,20 @@ CREATE TABLE "abwesenheit" (
|
|||||||
"datum" timestamptz NULL DEFAULT (now())::date,
|
"datum" timestamptz NULL DEFAULT (now())::date,
|
||||||
PRIMARY KEY ("counter_id")
|
PRIMARY KEY ("counter_id")
|
||||||
);
|
);
|
||||||
-- Create "anwesenheit" table
|
-- create "anwesenheit" table
|
||||||
CREATE TABLE "anwesenheit" (
|
CREATE TABLE "anwesenheit" (
|
||||||
"counter_id" bigserial NOT NULL,
|
"counter_id" bigserial NOT NULL,
|
||||||
"timestamp" timestamptz NULL DEFAULT CURRENT_TIMESTAMP,
|
"timestamp" timestamptz NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
"card_uid" character varying(255) NULL,
|
"card_uid" character varying(255) NULL,
|
||||||
"check_in_out" smallint NULL,
|
"check_in_out" smallint NULL,
|
||||||
"anwesenheit_type" smallint NULL,
|
|
||||||
"geraet_id" smallint NULL,
|
"geraet_id" smallint NULL,
|
||||||
PRIMARY KEY ("counter_id")
|
PRIMARY KEY ("counter_id")
|
||||||
);
|
);
|
||||||
-- Set comment to column: "check_in_out" on table: "anwesenheit"
|
-- set comment to column: "check_in_out" on table: "anwesenheit"
|
||||||
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"."check_in_out" IS '1=Check In 2=Check Out , 3=Check in Manuell, 4=Check out manuell255=Automatic Check Out';
|
||||||
-- Set comment to column: "geraet_id" on table: "anwesenheit"
|
-- set comment to column: "geraet_id" on table: "anwesenheit"
|
||||||
COMMENT ON COLUMN "anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
|
COMMENT ON COLUMN "anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
|
||||||
-- Create "personal_daten" table
|
-- create "personal_daten" table
|
||||||
CREATE TABLE "personal_daten" (
|
CREATE TABLE "personal_daten" (
|
||||||
"personal_nummer" integer NOT NULL,
|
"personal_nummer" integer NOT NULL,
|
||||||
"aktiv_beschaeftigt" boolean NULL,
|
"aktiv_beschaeftigt" boolean NULL,
|
||||||
@@ -38,16 +37,16 @@ CREATE TABLE "personal_daten" (
|
|||||||
"vorgesetzter_pers_nr" integer NULL,
|
"vorgesetzter_pers_nr" integer NULL,
|
||||||
PRIMARY KEY ("personal_nummer")
|
PRIMARY KEY ("personal_nummer")
|
||||||
);
|
);
|
||||||
-- Set comment to column: "geschlecht" on table: "personal_daten"
|
-- set comment to column: "geschlecht" on table: "personal_daten"
|
||||||
COMMENT ON COLUMN "personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers';
|
COMMENT ON COLUMN "personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers';
|
||||||
-- Create "user_password" table
|
-- create "user_password" table
|
||||||
CREATE TABLE "user_password" (
|
CREATE TABLE "user_password" (
|
||||||
"personal_nummer" integer NOT NULL,
|
"personal_nummer" integer NOT NULL,
|
||||||
"pass_hash" text NULL,
|
"pass_hash" text NULL,
|
||||||
"zuletzt_geandert" timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
"zuletzt_geandert" timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY ("personal_nummer")
|
PRIMARY KEY ("personal_nummer")
|
||||||
);
|
);
|
||||||
-- Create "wochen_report" table
|
-- create "wochen_report" table
|
||||||
CREATE TABLE "wochen_report" (
|
CREATE TABLE "wochen_report" (
|
||||||
"id" serial NOT NULL,
|
"id" serial NOT NULL,
|
||||||
"personal_nummer" integer NULL,
|
"personal_nummer" integer NULL,
|
||||||
10
migrations/20250802075213_control_tables.down.sql
Normal file
10
migrations/20250802075213_control_tables.down.sql
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
-- reverse rename "s_personal_daten" table
|
||||||
|
ALTER TABLE "s_personal_daten" RENAME TO "personal_daten";
|
||||||
|
|
||||||
|
DROP TABLE "s_personal_daten";
|
||||||
|
-- reverse: create "s_anwesenheit_typen" table
|
||||||
|
DROP TABLE "s_anwesenheit_typen";
|
||||||
|
-- reverse: create "s_abwesenheit_typen" table
|
||||||
|
DROP TABLE "s_abwesenheit_typen";
|
||||||
|
-- reverse: modify "anwesenheit" table
|
||||||
|
ALTER TABLE "anwesenheit" DROP COLUMN "manuelle_buchung";
|
||||||
16
migrations/20250802075213_control_tables.up.sql
Normal file
16
migrations/20250802075213_control_tables.up.sql
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
-- modify "anwesenheit" table
|
||||||
|
ALTER TABLE "anwesenheit" ADD COLUMN "manuelle_buchung" boolean NULL;
|
||||||
|
-- create "s_abwesenheit_typen" table
|
||||||
|
CREATE TABLE "s_abwesenheit_typen" (
|
||||||
|
"abwesenheit_id" smallint NOT NULL,
|
||||||
|
"abwesenheit_name" character varying(255) NULL,
|
||||||
|
PRIMARY KEY ("abwesenheit_id")
|
||||||
|
);
|
||||||
|
-- create "s_anwesenheit_typen" table
|
||||||
|
CREATE TABLE "s_anwesenheit_typen" (
|
||||||
|
"anwesenheit_id" smallint NOT NULL,
|
||||||
|
"anwesenheit_name" character varying(255) NULL,
|
||||||
|
PRIMARY KEY ("anwesenheit_id")
|
||||||
|
);
|
||||||
|
-- create "s_personal_daten" table
|
||||||
|
ALTER TABLE "personal_daten" RENAME TO "s_personal_daten";
|
||||||
3
migrations/atlas.sum
Normal file
3
migrations/atlas.sum
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
h1:5gPDmrcQS12KjKLuwN1ycTBHtbHbkzd7rUIj01uJrhA=
|
||||||
|
20250802065143_initial.up.sql h1:9cUWduWgONRfI5LV+b3nFvei6DKDqPxcNryKVg1xo80=
|
||||||
|
20250802075213_control_tables.up.sql h1:5vQLBHMM2Sa1FErP5gQUUHAoSiV2RQ0cOlMEEDFcoKA=
|
||||||
Reference in New Issue
Block a user