diff --git a/backup-database.bash b/backup-database.bash index e0581c5e..420566aa 100644 --- a/backup-database.bash +++ b/backup-database.bash @@ -1,8 +1,10 @@ #!/bin/bash -FILE_NAME=dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br +FILE_NAME=data-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br +FILE_NAME_COMPLETE=full-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br # Wir exportieren die Datenbank und komprimieren sie. -docker exec -t online-energieausweis-database-1 pg_dumpall -c -U main | brotli --best > $FILE_NAME +docker exec -t online-energieausweis-database-1 pg_dump --data-only -U main main | brotli --best > $FILE_NAME +docker exec -t online-energieausweis-database-1 pg_dumpall -c -U main | brotli --best > $FILE_NAME_COMPLETE # Das wird benötigt für AWS Ionos Kompatibilität. export AWS_REQUEST_CHECKSUM_CALCULATION=when_required @@ -12,6 +14,8 @@ export AWS_RESPONSE_CHECKSUM_VALIDATION=when_required # Das Profil kann mit `aws configure --profile ionos` erstellt werden. # Den Key dafür findet man auf https://dcd.ionos.com/latest/?lang=en#/key-management aws s3 cp $FILE_NAME s3://ibc-db-backup/ --profile ionos --endpoint-url https://s3-eu-central-1.ionoscloud.com --storage-class STANDARD +aws s3 cp $FILE_NAME_COMPLETE s3://ibc-db-backup/ --profile ionos --endpoint-url https://s3-eu-central-1.ionoscloud.com --storage-class STANDARD # Wir entfernen das Backup -rm $FILE_NAME \ No newline at end of file +rm $FILE_NAME +rm $FILE_NAME_COMPLETE \ No newline at end of file diff --git a/prisma/migrations/20250407200038_default_updated_at/migration.sql b/prisma/migrations/20250407200038_default_updated_at/migration.sql new file mode 100644 index 00000000..a4e6f660 --- /dev/null +++ b/prisma/migrations/20250407200038_default_updated_at/migration.sql @@ -0,0 +1,26 @@ +-- AlterTable +ALTER TABLE "BedarfsausweisGewerbe" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; + +-- AlterTable +ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; + +-- AlterTable +ALTER TABLE "Bild" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; + +-- AlterTable +ALTER TABLE "GEGNachweisGewerbe" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; + +-- AlterTable +ALTER TABLE "GEGNachweisWohnen" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; + +-- AlterTable +ALTER TABLE "Rechnung" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; + +-- AlterTable +ALTER TABLE "VerbrauchsausweisGewerbe" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; + +-- AlterTable +ALTER TABLE "VerbrauchsausweisWohnen" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; + +-- AlterTable +ALTER TABLE "benutzer" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP; diff --git a/prisma/schema/BedarfsausweisGewerbe.prisma b/prisma/schema/BedarfsausweisGewerbe.prisma index 58642840..476c21f7 100644 --- a/prisma/schema/BedarfsausweisGewerbe.prisma +++ b/prisma/schema/BedarfsausweisGewerbe.prisma @@ -28,7 +28,7 @@ model BedarfsausweisGewerbe { nachweistyp AusweisTyp @default(Standard) created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) /// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört") benutzer_id String? diff --git a/prisma/schema/BedarfsausweisWohnen.prisma b/prisma/schema/BedarfsausweisWohnen.prisma index 717a1950..3a05d2b5 100644 --- a/prisma/schema/BedarfsausweisWohnen.prisma +++ b/prisma/schema/BedarfsausweisWohnen.prisma @@ -82,7 +82,7 @@ model BedarfsausweisWohnen { kontrolldatei_angefragt Boolean? @default(false) created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) pruefpunkt_heizungsalter Boolean? @default(false) pruefpunkt_verbrauch_niedrig Boolean? @default(false) diff --git a/prisma/schema/Benutzer.prisma b/prisma/schema/Benutzer.prisma index 4a6d70ee..7a646d66 100644 --- a/prisma/schema/Benutzer.prisma +++ b/prisma/schema/Benutzer.prisma @@ -42,7 +42,7 @@ model Benutzer { bedarfsausweise_gewerbe BedarfsausweisGewerbe[] created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) ErstellteTickets Tickets[] @relation("ErstellteTickets") diff --git a/prisma/schema/Bild.prisma b/prisma/schema/Bild.prisma index 27c957fe..88ddf3ed 100644 --- a/prisma/schema/Bild.prisma +++ b/prisma/schema/Bild.prisma @@ -13,7 +13,7 @@ model Bild { name String created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) aufnahme_id String? aufnahme Aufnahme? @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction) diff --git a/prisma/schema/GEGNachweisGewerbe.prisma b/prisma/schema/GEGNachweisGewerbe.prisma index 58ca1cbb..8bff4bdf 100644 --- a/prisma/schema/GEGNachweisGewerbe.prisma +++ b/prisma/schema/GEGNachweisGewerbe.prisma @@ -19,7 +19,7 @@ model GEGNachweisGewerbe { nachweistyp AusweisTyp @default(Standard) created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) /// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört") benutzer_id String? diff --git a/prisma/schema/GEGNachweisWohnen.prisma b/prisma/schema/GEGNachweisWohnen.prisma index 219ea763..57a16db5 100644 --- a/prisma/schema/GEGNachweisWohnen.prisma +++ b/prisma/schema/GEGNachweisWohnen.prisma @@ -19,7 +19,7 @@ model GEGNachweisWohnen { nachweistyp AusweisTyp @default(Standard) created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) /// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört") benutzer_id String? diff --git a/prisma/schema/Rechnung.prisma b/prisma/schema/Rechnung.prisma index 61495d4e..ad55005c 100644 --- a/prisma/schema/Rechnung.prisma +++ b/prisma/schema/Rechnung.prisma @@ -57,7 +57,7 @@ model Rechnung { lex_office_id String? created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) benutzer_id String benutzer Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) diff --git a/prisma/schema/VerbrauchsausweisGewerbe.prisma b/prisma/schema/VerbrauchsausweisGewerbe.prisma index a2bc20bc..43811388 100644 --- a/prisma/schema/VerbrauchsausweisGewerbe.prisma +++ b/prisma/schema/VerbrauchsausweisGewerbe.prisma @@ -71,7 +71,7 @@ model VerbrauchsausweisGewerbe { kontrolldatei_angefragt Boolean? @default(false) created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) ausweistyp AusweisTyp @default(Standard) diff --git a/prisma/schema/VerbrauchsausweisWohnen.prisma b/prisma/schema/VerbrauchsausweisWohnen.prisma index 15ecf886..a741aa90 100644 --- a/prisma/schema/VerbrauchsausweisWohnen.prisma +++ b/prisma/schema/VerbrauchsausweisWohnen.prisma @@ -77,7 +77,7 @@ model VerbrauchsausweisWohnen { ausweistyp AusweisTyp @default(Standard) created_at DateTime @default(now()) - updated_at DateTime @updatedAt + updated_at DateTime @updatedAt @default(now()) pruefpunkt_heizungsalter Boolean? @default(false) pruefpunkt_verbrauch_niedrig Boolean? @default(false) diff --git a/src/generated/zod/aufnahme.ts b/src/generated/zod/aufnahme.ts index c8b72eb7..c48b4462 100644 --- a/src/generated/zod/aufnahme.ts +++ b/src/generated/zod/aufnahme.ts @@ -45,7 +45,7 @@ export const AufnahmeSchema = z.object({ isolier_verglasung: z.boolean().describe("Falls die Fenster des Gebäudes isolier Verglasung haben, sollte dieser Wert auf true stehen").nullish(), tueren_undicht: z.boolean().describe("Falls die Türen des Gebäudes undicht sind, sollte dieser Wert auf true stehen").nullish(), tueren_dicht: z.boolean().describe("Falls die Türen des Gebäudes dicht sind, sollte dieser Wert auf true stehen").nullish(), - dachgeschoss_gedaemmt: z.boolean().describe("Falls das Dachgeschoss des Gebäudes ged��mmt ist, sollte dieser Wert auf true stehen").nullish(), + dachgeschoss_gedaemmt: z.boolean().describe("Falls das Dachgeschoss des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen").nullish(), keller_decke_gedaemmt: z.boolean().describe("Falls die Kellerdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen").nullish(), keller_wand_gedaemmt: z.boolean().describe("Falls die Kellerwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(), aussenwand_gedaemmt: z.boolean().describe("Falls die Außenwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(), diff --git a/src/testing/daten-umziehen.ts b/src/testing/daten-umziehen.ts index fec0d498..30ecb490 100644 --- a/src/testing/daten-umziehen.ts +++ b/src/testing/daten-umziehen.ts @@ -139,7 +139,7 @@ Papa.parse(file, { const aufnahme_id = generatePrefixedId( 6, - VALID_UUID_PREFIXES.Objekt + VALID_UUID_PREFIXES.Aufnahme ); const aufnahme = await prisma.aufnahme.create({