Skip to content

Wartung

LeonardNolting edited this page Feb 18, 2023 · 4 revisions

Saisons erstellen

(0. evtl. backup erstellen in Firebase->Datenbank->in JSON exportieren)

  1. in Firebase->Datenbank spezifisch/klassen/ komplett löschen (damit firebase accounts gelöscht werden - es müssen nur der account unter leonard.nolting@gymhoes.de und der unter hip@gy-ho.de bleiben)
  2. in Google Cloud->Um Die Welt->Functions fast alle Functions löschen (NICHT die ext-..., die ist für E-Mails da)
  3. warten, bis alle gelöscht wurden (evtl. Seite neu laden), dauert ein paar Minuten höchstens
  4. in Firebase->Datenbank /spezifisch komplett löschen
  5. sobald gelöscht, in Intellij->Um Die Welt gehen 4.1 master auschecken 4.2 ggf. (bei neuem computer) https://firebase.google.com/docs/functions/get-started?hl=de#set-up-node.js-and-the-firebase-cli befolgen, um firebase functions deployen zu können 4.3 firebase deploy --only functions ausführen
  6. auf website als admin einloggen und "Neue Saison anlegen" klicken (Anzahl Runden wird einfach nicht berücksichtigt, hat keinen Effekt)

Das Ganze ist nötig, da beim Löschen von /spezifisch normalerweise haufenweise cloud functions getriggered werden (z.B. für jede Strecke "passeStreckeUndAnzahlStreckenAn-decrement"). In den obigen Schritten werden also die functions temporär deaktiviert (gelöscht), dann die schwierige Operation durchgeführt, dann die functions wieder aktiviert (deployed).

anzahlStrecken, anzahlFahrer und Strecke neu berechnen lassen

  • in Realtime Database Rules root/.validate auf false setzen
  • Backup
  • Backup kopieren, alle errechneten Werte in IDE entfernen (anzahlStrecken, anzahlFahrer und strecke (bis auf bei den tatsächlichen strecken in spezifisch/strecken))
  • modifiziertes Backup speichern und wiederum kopieren, spezifisch/fahrer und spezifisch/strecken komplett löschen (müssen auf eine reine Basis (automatisch errechnete Werte alle auf 0) importiert werden, sodass Cloud Functions die Werte richtig errechnen)
  • doppelt modifiziertes Backup speichern
  • spezifisch/fahrer und spezifisch/strecken in Datenbank löschen
  • doppelt modifiziertes Backup einspielen
  • einfach modifiziertes Backup einspielen -> alle Werte werden von Cloud Functions gesetzt
  • Datenbankregel root/.validate auskommentieren

Achtung: NIE spezifisch/klassen löschen (schwer zu reparieren)

Datenbank auf Backup zurücksetzen, ohne Cloud Functions zu triggern

  • in Realtime Database Rules root/.validate auf false setzen
  • temporär (ohne commit) Datei functions/src/index.ts leeren
  • aus project root firebase deploy --only functions ausführen und Löschen bestätigten
  • Backup über Firebase Console einspielen
  • Datei functions/src/index.ts rollbacken bzw. undo
  • selben Befehl wieder laufen lassen, kurz abwarten
  • Datenbankregel root/.validate auskommentieren