Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Infos, Planung, offene Fragen... alles zu BC v2.0!
Antworten
Benutzeravatar
shadowcat
Administrator
Beiträge: 4227
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat » Fr 3. Jan 2020, 16:53

SyncData hat eine lange Historie, auch wenn es im BC-Umfeld vermutlich kaum einer kennt. Der leider verstorbene Ralf Hertsch hatte zunächst ein Modul für WB geschrieben (SyncData1), dieses dann später aber aus dem CMS komplett ausgelagert, um unter anderem Probleme mit in Benutzung befindlichen Dateien zu umgehen. Das war bzw. ist SyncData2, zu dem es in unserem Wiki auch eine Anleitung gibt, wie man es für "Staging" verwenden kann.

Schon lange wollte ich auf Basis meiner Erkenntnisse mit den beiden Versionen - ich habe SyncData2 sozusagen von Ralf geerbt - ein neues Modul bauen. Zum einen sind die Komponenten in SyncData2 mittlerweile veraltet - da werden unter anderem Teile des Symfony bzw. Silex Frameworks verwendet, da Ralf ganz bewußt NICHT auf CMS-Komponenten aufsetzen wollte. Zum anderen gibt es keine Admin-GUI, man muß alles von Hand in diversen Konfigurationsdateien einstellen und auch das Log ist zwar extrem umfangreich und aussagekräftig, man muss es aber lesen können. Kurz: Es ist ein Tool für Profis.

Da auch bei unserem "Nachbar-CMS" WBCE Bedarf an einem neuen Backup-Tool besteht, habe ich mal angefangen, ein Hybrid-Modul zu bauen, also ein Modul, das sowohl mit BC1/BC2, als auch mit WBCE funktioniert. Ich als Programmierer muss da zwar einige Abstriche machen, da ich die Luxus-Funktionen von BC nicht nutzen kann - bzw. für WBCE nachbauen muss. Das hat aber für den Anwender keine sichtbaren Auswirkungen.

Und so sieht es (derzeit) aus:
2020-01-03 16_40_57-BlackCat CMS Backend _ Admin Werkzeuge.png
2020-01-03 16_40_57-BlackCat CMS Backend _ Admin Werkzeuge.png (31.8 KiB) 69 mal betrachtet

Das (geplante) Verfahren:

Man hakt einfach an, was man sichern möchte. Dazu klappt man über den Link "Create new backup job" (an einigen Stellen fehlen noch die Übersetzungen) ein kleines Formular auf.

2020-01-03 16_54_01-BlackCat CMS Backend _ Admin Werkzeuge.png
2020-01-03 16_54_01-BlackCat CMS Backend _ Admin Werkzeuge.png (9.87 KiB) 68 mal betrachtet

Mit Klick auf [Sicherung starten] (der muss noch umbenannt werden, seht Ihr gleich) erstellt man dann zunächst mal einen Job in der Datenbank. Dieser wird (zumindest derzeit) nicht automatisch gestartet. Grundproblem: Server Timeout. Gerade die Sicherung des media-Verzeichnisses kann ja sehr lange dauern, da reichen die standardmäßigen 30 Sekunden für Scripten nicht aus. Es gibt da diverse Tricks, die Details lassen wir mal beiseite.

Die so erstellten Jobs sieht man dann in der Liste. Man sieht auch, ob ein Job schon gestartet wurde, ob er noch läuft, bzw. wenn er fertig ist, ob das erfolgreich war. Das sind alles Funktionen, die es noch nicht gibt, aber so soll es dann werden. ;)

Einen Job im Status "neu" kann man dann über das Icon rechts daneben starten. Läuft bereits ein anderer Job, muss dieser erst beendet sein bzw. beendet werden. Ob es überhaupt Sinn macht, dass man dann einen neuen Job erzeugen kann, ist eine Frage, die ich später mal beantworte, das hängt auch davon ab, was ich bei der Entwicklung noch so an Ideen habe. Momentan gibt es z.B. auch noch keinen Ansatz dafür, einen Sicherungsjob z.B. per Cronjob regelmäßig zu wiederholen. Erst mal muss das Sichern grundsätzlich funktionieren, dann kann man sich mit solchen Details befassen.

"Endziel" ist, dass man neben der manuellen Sicherung und Wiederherstellung Daten an eine andere Installation (Instanz) schicken kann, damit beide gleich aussehen. Somit kann ich dann in einer lokalen Installation - z.B. in einer Portable - meine Änderungen machen und nach Fertigstellung an meine Live-Instanz senden. Das ist die eigentliche Kernfunktion von SyncData2. Logisch, dass das die Sache extrem komplex macht - angefangen bei einem unterschiedlichen Tabellen-Präfix über den Erhalt von Änderungen, die auf dem Ziel möglicherweise stattgefunden haben, bis hin zu eventuell unterschiedlichen Datenbank- und PHP-Versionen. Das wird insbesondere bei BC2 eine echte Herausforderung, da wir dort ja mit einer Engine-Installation diverse Sites betreiben können und aufpassen müssen, dass wir mit dem Sync einer Site nicht die komplette Installation plätten. Da krieg ich, gelinde gesagt, Kopfschmerzen bei dem Gedanken. :-?
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
Morpheus
Beiträge: 958
Registriert: Do 8. Aug 2013, 10:49
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von Morpheus » Sa 4. Jan 2020, 08:31

Das klingt echt super. Ich bin sehr gespannt. :daumen:
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen!

Benutzeravatar
shadowcat
Administrator
Beiträge: 4227
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat » Mo 6. Jan 2020, 09:44

Tabellensicherung klappt schon mal, ob da beim Wiederherstellen später was Sinnvolles rauskommt, steht auf einem anderen Blatt. :D Dank der umfangreichen Vorarbeit von Ralf kann ich mir zum Glück viel abschauen. (Und bin mal wieder traurig, weil er nicht mehr da ist.)
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4227
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat » Mo 6. Jan 2020, 15:55

Hier mal ein Screenshot aus WBCE. Jobdetails ansehen klappt auch schon.
Dateianhänge
2020-01-06 15_58_50-WBCE»Verwaltung-Admin-Tools.png
2020-01-06 15_58_50-WBCE»Verwaltung-Admin-Tools.png (31.62 KiB) 51 mal betrachtet
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4227
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat » Mo 6. Jan 2020, 17:55

Access files (nur WBCE bzw. BC1) und Medien können auch schon gesichert werden. Die Zahlen sind echt. ;)
Dateianhänge
2020-01-06 17_55_04-WBCE»Verwaltung-Admin-Tools.png
2020-01-06 17_55_04-WBCE»Verwaltung-Admin-Tools.png (33.21 KiB) 48 mal betrachtet
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4227
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat » Do 9. Jan 2020, 12:36

Funzt natürlich dann auch in BC1.x, ich hab nur grad ein Problem mit dem Font für die Icons, das mir noch etwas Rätsel aufgibt. :mrgreen:
Dateianhänge
2020-01-09 12_35_24-BlackCat CMS » Administration - ADMINTOOLS.png
2020-01-09 12_35_24-BlackCat CMS » Administration - ADMINTOOLS.png (29.13 KiB) 36 mal betrachtet
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4227
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat » Fr 10. Jan 2020, 15:20

Hier gibt's auch schon ein wenig zum Nachlesen...
https://bc2.blackcat-cms.org/page/modul ... ncdata.php
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4227
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat » Di 21. Jan 2020, 10:11

Es geht voran... :mrgreen:

1. Bei Erstellen eines Backup-Jobs kann man die Voreinstellungen (die unter [Einstellungen] gemacht wurden) anpassen. Das sind z.B. die Namen von Tabellen, die nicht mit gesichert werden sollen, oder die Namen von Verzeichnissen, die nicht mit ins ZIP sollen.
2020-01-21 10_22_10-BlackCat CMS » Administration - ADMINTOOLS.png
Das Formular sieht in BC 1.3 noch etwas optimierungsbedürftig aus...
2020-01-21 10_22_10-BlackCat CMS » Administration - ADMINTOOLS.png (43.24 KiB) 13 mal betrachtet

2. Während der Sicherung wird von der Seite alle 15 Sekunden nachgeschaut, wie weit der Job gekommen ist. Man muß aber nicht warten, die Sicherung läuft im Hintergrund weiter.

2020-01-21 10_04_16-WBCE»Verwaltung-Admin-Tools.png
Screenshot aus WBCE 1.4.x
2020-01-21 10_04_16-WBCE»Verwaltung-Admin-Tools.png (39.11 KiB) 15 mal betrachtet
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
Morpheus
Beiträge: 958
Registriert: Do 8. Aug 2013, 10:49
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von Morpheus » Di 21. Jan 2020, 11:51

:daumen:
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen!

Antworten