moved migrations
This commit is contained in:
16
Backend/migrations/20250901201159_initial.down.sql
Normal file
16
Backend/migrations/20250901201159_initial.down.sql
Normal file
@@ -0,0 +1,16 @@
|
||||
-- reverse: create "user_password" table
|
||||
DROP TABLE "user_password";
|
||||
-- reverse: create "wochen_report" table
|
||||
DROP TABLE "wochen_report";
|
||||
-- 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";
|
||||
69
Backend/migrations/20250901201159_initial.up.sql
Normal file
69
Backend/migrations/20250901201159_initial.up.sql
Normal file
@@ -0,0 +1,69 @@
|
||||
ALTER DEFAULT PRIVILEGES FOR ROLE migrate
|
||||
IN SCHEMA public
|
||||
GRANT SELECT ON TABLES TO app_base;
|
||||
|
||||
ALTER DEFAULT PRIVILEGES FOR ROLE migrate
|
||||
IN SCHEMA public
|
||||
GRANT USAGE, SELECT ON SEQUENCES TO app_base;
|
||||
|
||||
-- create "abwesenheit" table
|
||||
CREATE TABLE "abwesenheit" (
|
||||
"counter_id" bigserial NOT NULL,
|
||||
"card_uid" character varying(255) NULL,
|
||||
"abwesenheit_typ" smallint NULL,
|
||||
"datum" timestamptz NULL DEFAULT (now())::date,
|
||||
PRIMARY KEY ("counter_id")
|
||||
);
|
||||
|
||||
-- create "anwesenheit" table
|
||||
CREATE TABLE "anwesenheit" (
|
||||
"counter_id" bigserial NOT NULL,
|
||||
"timestamp" timestamptz NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"card_uid" character varying(255) NULL,
|
||||
"check_in_out" smallint NULL,
|
||||
"geraet_id" smallint NULL,
|
||||
PRIMARY KEY ("counter_id")
|
||||
);
|
||||
-- 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';
|
||||
-- set comment to column: "geraet_id" on table: "anwesenheit"
|
||||
COMMENT ON COLUMN "anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
|
||||
-- create "personal_daten" table
|
||||
CREATE TABLE "personal_daten" (
|
||||
"personal_nummer" integer NOT NULL,
|
||||
"aktiv_beschaeftigt" boolean NULL,
|
||||
"vorname" character varying(255) NULL,
|
||||
"nachname" character varying(255) NULL,
|
||||
"geburtsdatum" date NULL,
|
||||
"plz" character varying(255) NULL,
|
||||
"adresse" character varying(255) NULL,
|
||||
"geschlecht" smallint NULL,
|
||||
"card_uid" character varying(255) NULL,
|
||||
"hauptbeschaeftigungs_ort" smallint NULL,
|
||||
"arbeitszeit_per_tag" real NULL,
|
||||
"arbeitszeit_min_start" time NULL,
|
||||
"arbeitszeit_max_ende" time NULL,
|
||||
"vorgesetzter_pers_nr" integer NULL,
|
||||
PRIMARY KEY ("personal_nummer")
|
||||
);
|
||||
-- set comment to column: "geschlecht" on table: "personal_daten"
|
||||
COMMENT ON COLUMN "personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers';
|
||||
-- create "user_password" table
|
||||
CREATE TABLE "user_password" (
|
||||
"personal_nummer" integer NOT NULL,
|
||||
"pass_hash" text NULL,
|
||||
"zuletzt_geandert" timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY ("personal_nummer")
|
||||
);
|
||||
-- create "wochen_report" table
|
||||
CREATE TABLE "wochen_report" (
|
||||
"id" serial NOT NULL,
|
||||
"personal_nummer" integer NULL,
|
||||
"woche_start" date NULL,
|
||||
"bestaetigt" boolean NULL DEFAULT false,
|
||||
PRIMARY KEY ("id"),
|
||||
CONSTRAINT "wochen_report_personal_nummer_woche_start_key" UNIQUE ("personal_nummer", "woche_start")
|
||||
);
|
||||
|
||||
GRANT INSERT, UPDATE ON abwesenheit, anwesenheit, wochen_report, user_password TO app_base;
|
||||
GRANT DELETE ON abwesenheit to app_base;
|
||||
14
Backend/migrations/20250901201250_control_tables.down.sql
Normal file
14
Backend/migrations/20250901201250_control_tables.down.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
-- reverse: remame "personal_daten" table
|
||||
ALTER TABLE "s_personal_daten" RENAME TO "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 "wochen_report" table
|
||||
ALTER TABLE "wochen_report" DROP COLUMN "ueberstunden";
|
||||
-- reverse: modify "anwesenheit" table
|
||||
ALTER TABLE "anwesenheit" DROP COLUMN "anwesenheit_typ", ALTER COLUMN "check_in_out" DROP NOT NULL, ALTER COLUMN "card_uid" DROP NOT NULL;
|
||||
|
||||
-- reverse: rename a constraint from "personal_daten_pkey" to "s_personal_daten_pkey"
|
||||
ALTER TABLE "s_personal_daten" RENAME CONSTRAINT "s_personal_daten_pkey" TO "personal_daten_pkey";
|
||||
21
Backend/migrations/20250901201250_control_tables.up.sql
Normal file
21
Backend/migrations/20250901201250_control_tables.up.sql
Normal file
@@ -0,0 +1,21 @@
|
||||
-- modify "anwesenheit" table
|
||||
ALTER TABLE "anwesenheit" ALTER COLUMN "card_uid" SET NOT NULL, ALTER COLUMN "check_in_out" SET NOT NULL, ADD COLUMN "anwesenheit_typ" smallint NULL;
|
||||
-- modify "wochen_report" table
|
||||
ALTER TABLE "wochen_report" ADD COLUMN "ueberstunden" smallint 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")
|
||||
);
|
||||
-- rename "s_personal_daten" table
|
||||
ALTER TABLE "personal_daten" RENAME TO "s_personal_daten";
|
||||
|
||||
-- rename a constraint from "personal_daten_pkey" to "s_personal_daten_pkey"
|
||||
ALTER TABLE "s_personal_daten" RENAME CONSTRAINT "personal_daten_pkey" TO "s_personal_daten_pkey";
|
||||
@@ -0,0 +1,5 @@
|
||||
-- update Funktion für pass_hash
|
||||
|
||||
DROP FUNCTION update_zuletzt_geandert;
|
||||
|
||||
DROP TRIGGER IF EXISTS pass_hash_update ON user_password;
|
||||
19
Backend/migrations/20250901201710_triggers_extension.up.sql
Normal file
19
Backend/migrations/20250901201710_triggers_extension.up.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
-- update Funktion für pass_hash
|
||||
|
||||
CREATE OR REPLACE FUNCTION update_zuletzt_geandert()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
-- Nur wenn hash geändert wurde
|
||||
IF NEW.pass_hash IS DISTINCT FROM OLD.pass_hash THEN
|
||||
NEW.zuletzt_geandert = now();
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER pass_hash_update
|
||||
BEFORE UPDATE ON user_password
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_zuletzt_geandert();
|
||||
|
||||
-- Adds crypto extension
|
||||
6
Backend/migrations/20250903221313_overtime.down.sql
Normal file
6
Backend/migrations/20250903221313_overtime.down.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
-- reverse: modify "wochen_report" table
|
||||
ALTER TABLE "wochen_report" DROP COLUMN "arbeitszeit", ALTER COLUMN "ueberstunden" TYPE smallint;
|
||||
-- reverse: modify "s_personal_daten" table
|
||||
ALTER TABLE "s_personal_daten" DROP COLUMN "arbeitszeit_per_woche";
|
||||
-- reverse: modify "s_abwesenheit_typen" table
|
||||
ALTER TABLE "s_abwesenheit_typen" DROP COLUMN "arbeitszeit_equivalent";
|
||||
6
Backend/migrations/20250903221313_overtime.up.sql
Normal file
6
Backend/migrations/20250903221313_overtime.up.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
-- modify "s_abwesenheit_typen" table
|
||||
ALTER TABLE "s_abwesenheit_typen" ADD COLUMN "arbeitszeit_equivalent" real NULL;
|
||||
-- modify "s_personal_daten" table
|
||||
ALTER TABLE "s_personal_daten" ADD COLUMN "arbeitszeit_per_woche" real NULL;
|
||||
-- modify "wochen_report" table
|
||||
ALTER TABLE "wochen_report" ALTER COLUMN "ueberstunden" TYPE real, ADD COLUMN "arbeitszeit" real NULL;
|
||||
@@ -0,0 +1,4 @@
|
||||
-- reverse: modify "s_personal_daten" table
|
||||
ALTER TABLE "s_personal_daten" ALTER COLUMN "nachname" DROP NOT NULL, ALTER COLUMN "vorname" DROP NOT NULL;
|
||||
-- reverse: modify "anwesenheit" table
|
||||
ALTER TABLE "anwesenheit" ALTER COLUMN "anwesenheit_typ" DROP NOT NULL, ALTER COLUMN "geraet_id" DROP NOT NULL, ALTER COLUMN "timestamp" DROP NOT NULL;
|
||||
@@ -0,0 +1,4 @@
|
||||
-- modify "anwesenheit" table
|
||||
ALTER TABLE "anwesenheit" ALTER COLUMN "timestamp" SET NOT NULL, ALTER COLUMN "geraet_id" SET NOT NULL, ALTER COLUMN "anwesenheit_typ" SET NOT NULL;
|
||||
-- modify "s_personal_daten" table
|
||||
ALTER TABLE "s_personal_daten" ALTER COLUMN "vorname" SET NOT NULL, ALTER COLUMN "nachname" SET NOT NULL;
|
||||
7
Backend/migrations/20250904114004_intervals.down.sql
Normal file
7
Backend/migrations/20250904114004_intervals.down.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
ALTER TABLE wochen_report
|
||||
ALTER COLUMN ueberstunden TYPE float4
|
||||
USING
|
||||
extract(epoch from ueberstunden) / 3600.0,
|
||||
ALTER COLUMN arbeitszeit TYPE float4
|
||||
USING
|
||||
extract(epoch from arbeitszeit) / 3600.0;
|
||||
19
Backend/migrations/20250904114004_intervals.up.sql
Normal file
19
Backend/migrations/20250904114004_intervals.up.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
ALTER TABLE wochen_report
|
||||
ADD COLUMN ueberstunden_interval interval,
|
||||
ADD COLUMN arbeitszeit_interval interval;
|
||||
|
||||
UPDATE wochen_report
|
||||
SET
|
||||
ueberstunden_interval = CASE WHEN ueberstunden IS NULL THEN NULL ELSE (ueberstunden::double precision * INTERVAL '1 hour') END,
|
||||
arbeitszeit_interval = CASE WHEN arbeitszeit IS NULL THEN NULL ELSE (arbeitszeit::double precision * INTERVAL '1 hour') END;
|
||||
|
||||
-- when happy, drop old columns and rename new ones
|
||||
ALTER TABLE wochen_report
|
||||
DROP COLUMN ueberstunden,
|
||||
DROP COLUMN arbeitszeit;
|
||||
|
||||
ALTER TABLE wochen_report
|
||||
RENAME COLUMN ueberstunden_interval TO ueberstunden;
|
||||
|
||||
ALTER TABLE wochen_report
|
||||
RENAME COLUMN arbeitszeit_interval TO arbeitszeit;
|
||||
11
Backend/migrations/20250916093608_kurzarbeit.down.sql
Normal file
11
Backend/migrations/20250916093608_kurzarbeit.down.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- reverse: modify "wochen_report" table
|
||||
ALTER TABLE "wochen_report" ALTER COLUMN "personal_nummer" DROP NOT NULL;
|
||||
-- reverse: modify "s_personal_daten" table
|
||||
ALTER TABLE "s_anwesenheit_typen" ALTER COLUMN "anwesenheit_name" DROP NOT NULL;
|
||||
-- reverse: set comment to column: "arbeitszeit_equivalent" on table: "s_abwesenheit_typen"
|
||||
COMMENT ON COLUMN "s_abwesenheit_typen"."arbeitszeit_equivalent" IS NULL;
|
||||
-- reverse: modify "s_abwesenheit_typen" table
|
||||
ALTER TABLE "s_abwesenheit_typen" ALTER COLUMN "arbeitszeit_equivalent" DROP NOT NULL, ALTER COLUMN "abwesenheit_name" DROP NOT NULL;
|
||||
-- reverse: modify "abwesenheit" table
|
||||
ALTER TABLE "abwesenheit" DROP COLUMN "datum_to", ALTER COLUMN "datum_from" DROP NOT NULL, ALTER COLUMN "abwesenheit_typ" DROP NOT NULL, ALTER COLUMN "card_uid" DROP NOT NULL;
|
||||
ALTER TABLE "abwesenheit" RENAME COLUMN "datum_from" TO "datum";
|
||||
11
Backend/migrations/20250916093608_kurzarbeit.up.sql
Normal file
11
Backend/migrations/20250916093608_kurzarbeit.up.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- modify "abwesenheit" table
|
||||
ALTER TABLE "abwesenheit" RENAME COLUMN "datum" TO "datum_from";
|
||||
ALTER TABLE "abwesenheit" ALTER COLUMN "card_uid" SET NOT NULL, ALTER COLUMN "abwesenheit_typ" SET NOT NULL, ALTER COLUMN "datum_from" SET NOT NULL, ADD COLUMN "datum_to" timestamptz;
|
||||
-- modify "s_abwesenheit_typen" table
|
||||
ALTER TABLE "s_abwesenheit_typen" ALTER COLUMN "abwesenheit_name" SET NOT NULL, ALTER COLUMN "arbeitszeit_equivalent" SET NOT NULL;
|
||||
-- set comment to column: "arbeitszeit_equivalent" on table: "s_abwesenheit_typen"
|
||||
COMMENT ON COLUMN "s_abwesenheit_typen"."arbeitszeit_equivalent" IS '0=keine Arbeitszeit; 1=Arbeitszeit auffüllen; 2=Arbeitszeit austauschen';
|
||||
-- modify "s_anwesenheit_typen" table
|
||||
ALTER TABLE "s_anwesenheit_typen" ALTER COLUMN "anwesenheit_name" SET NOT NULL;
|
||||
-- modify "s_personal_daten" table
|
||||
ALTER TABLE "wochen_report" ALTER COLUMN "personal_nummer" SET NOT NULL;
|
||||
@@ -0,0 +1,4 @@
|
||||
-- reverse: modify "wochen_report" table
|
||||
ALTER TABLE "wochen_report" DROP COLUMN "abwesenheiten", DROP COLUMN "anwesenheiten", ALTER COLUMN "arbeitszeit" DROP NOT NULL, ALTER COLUMN "ueberstunden" DROP NOT NULL, ALTER COLUMN "woche_start" DROP NOT NULL;
|
||||
-- reverse: modify "abwesenheit" table
|
||||
ALTER TABLE "abwesenheit" ALTER COLUMN "datum_to" DROP NOT NULL;
|
||||
4
Backend/migrations/20251013212224_buchungs_array.up.sql
Normal file
4
Backend/migrations/20251013212224_buchungs_array.up.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- modify "abwesenheit" table
|
||||
ALTER TABLE "abwesenheit" ALTER COLUMN "datum_to" SET NOT NULL;
|
||||
-- modify "wochen_report" table
|
||||
ALTER TABLE "wochen_report" ALTER COLUMN "woche_start" SET NOT NULL, ALTER COLUMN "ueberstunden" SET NOT NULL, ALTER COLUMN "arbeitszeit" SET NOT NULL, ADD COLUMN "anwesenheiten" integer[] NULL, ADD COLUMN "abwesenheiten" integer[] NULL;
|
||||
6
Backend/migrations/20251217215955_feiertage.down.sql
Normal file
6
Backend/migrations/20251217215955_feiertage.down.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
-- reverse: create index "feiertage_unique_pro_jahr" to table: "s_feiertage"
|
||||
DROP INDEX "feiertage_unique_pro_jahr";
|
||||
-- reverse: create "s_feiertage" table
|
||||
DROP TABLE "s_feiertage";
|
||||
-- reverse: set comment to column: "arbeitszeit_equivalent" on table: "s_abwesenheit_typen"
|
||||
COMMENT ON COLUMN "s_abwesenheit_typen"."arbeitszeit_equivalent" IS '0=keine Arbeitszeit; 1=Arbeitszeit auffüllen; 2=Arbeitszeit austauschen';
|
||||
15
Backend/migrations/20251217215955_feiertage.up.sql
Normal file
15
Backend/migrations/20251217215955_feiertage.up.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
-- set comment to column: "arbeitszeit_equivalent" on table: "s_abwesenheit_typen"
|
||||
COMMENT ON COLUMN "s_abwesenheit_typen"."arbeitszeit_equivalent" IS '0=keine Arbeitszeit; -1=Arbeitszeit auffüllen; <=1 - 100 => Arbeitszeit pro Tag prozentual';
|
||||
-- create "s_feiertage" table
|
||||
CREATE TABLE "s_feiertage" (
|
||||
"counter_id" serial NOT NULL,
|
||||
"datum" date NOT NULL,
|
||||
"name" character varying(100) NOT NULL,
|
||||
"wiederholen" smallint NOT NULL DEFAULT 0,
|
||||
"arbeitszeit_equivalent" smallint NOT NULL DEFAULT 100,
|
||||
PRIMARY KEY ("counter_id")
|
||||
);
|
||||
-- create index "feiertage_unique_pro_jahr" to table: "s_feiertage"
|
||||
CREATE UNIQUE INDEX "feiertage_unique_pro_jahr" ON "s_feiertage" ((EXTRACT(year FROM datum)), "name");
|
||||
|
||||
GRANT INSERT, UPDATE ON s_feiertage TO app_base;
|
||||
10
Backend/migrations/atlas.sum
Normal file
10
Backend/migrations/atlas.sum
Normal file
@@ -0,0 +1,10 @@
|
||||
h1:1lrLZOm9nGe6v1/TrR1Ij8LBRDCY2igXwwUB+XqEIrc=
|
||||
20250901201159_initial.up.sql h1:Mb1RlVdFvcxqU9HrSK6oNeURqFa3O4KzB3rDa+6+3gc=
|
||||
20250901201250_control_tables.up.sql h1:a5LATgR/CRiC4GsqxkJ94TyJOxeTcW74eCnodIy+c1E=
|
||||
20250901201710_triggers_extension.up.sql h1:z9b6Hk9btE2Ns4mU7B16HjvYBP6EEwHAXVlvPpkn978=
|
||||
20250903221313_overtime.up.sql h1:t/B435ShW5ZEnzC81jRABWVZ5gNm7tPZPnOO6/ZY6ow=
|
||||
20250903233030_non_null_contraints.up.sql h1:YKeYgazfh+jPyh7hFT/pV+By8eHnk1taXnlgSLyXSA0=
|
||||
20250904114004_intervals.up.sql h1:gDdN8cJ4xH1vQhAbbhqD5lwdyEO1N9EIqEYkmWGiWIU=
|
||||
20250916093608_kurzarbeit.up.sql h1:yDAAMLyUXz6b7+MI6XK/HZMPzutKoT2NNNOCjFaqSts=
|
||||
20251013212224_buchungs_array.up.sql h1:mbhvnwMUkEFFQQ41NC47auqxbtvNkztziWvpLDFm6tA=
|
||||
20251217215955_feiertage.up.sql h1:PipbYvfL8YtsidgbJ3oEHYrmiNzffQ7veyaGAxINltE=
|
||||
Reference in New Issue
Block a user