-
Notifications
You must be signed in to change notification settings - Fork 1
Wartung
LeonardNolting edited this page Feb 18, 2023
·
4 revisions
(0. evtl. backup erstellen in Firebase->Datenbank->in JSON exportieren)
- 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)
- in Google Cloud->Um Die Welt->Functions fast alle Functions löschen (NICHT die ext-..., die ist für E-Mails da)
- warten, bis alle gelöscht wurden (evtl. Seite neu laden), dauert ein paar Minuten höchstens
- in Firebase->Datenbank /spezifisch komplett löschen
- 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 - 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).
- 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)
- 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