Beitragsseiten
Seit Version 1.0.1 von BwPostman gibt es die Möglichkeit, die Tabellen von BwPostman zu sichern und wiederherzustellen. Außerdem kann man die Tabellen überprüfen. Werden Fehler festgestellt, werden diese automatisch repariert. Das funktioniert sehr zuverlässig, eine hundertprozentige Garantie kann ich aber nicht geben.
Damit ist zum Beispiel die Möglichkeit gegeben, eine total zerschossene Installation von BwPostman zu deinstallieren und neu zu installieren, ohne Mailinglisten, Newsletter, Kampagnen oder Abonnenten zu verlieren.
Machen Sie eine Sicherung ihrer Daten! Dies kann durchaus auch mit der Sicherung von BwPostman geschehen. Genau die Überlegung: „Wenn ich hier etwas repariere und das geht in die Hose, dann habe ich den Salat“ hat mich dazu gebracht, diese Sicherung zu schreiben. Doch was nützt die beste und aktuellste Sicherung, wenn ich sie im Ernstfall nicht einspielen kann? Also gab es auch noch die Wiederherstellung oben drauf.
Die Wartung wird entweder aus der Hauptansicht von BwPostman oder über das Untermenü aufgerufen. Neben den Grundeinstellungen, mit denen BwPostman konfiguriert wird und dem Link auf das Forum gibt es in der Wartung noch drei Schaltflächen: Tabellen überprüfen und reparieren, Tabellen sichern und Tabellen wiederherstellen.
Tabellen überprüfen und reparieren
Mit einem Klick auf diese Schaltfläche werden die Tabellen anhand der SQL-Installationsdatei der installierten Version von BwPostman geprüft. Das Ergebnis von Prüfung und Reparaturversuch wird Schritt für Schritt in einer Übersicht dargestellt. Über die Schaltfläche Zurück oben in der Toolbar kommt man wieder zur Wartung zurück.
Die Prüfung läuft intern so ab:
Zuerst wird festgestellt, ob alle Tabellen, die gebraucht werden, auch vorhanden sind. Falls Tabellen fehlen sollten, werden diese angelegt. Dann wird geprüft, ob irgendwelche Tabellen, die BwPostman im Namen tragen, aber nicht benötigt werden (die zum Beispiel aus früheren Versionen übrig geblieben sind), vorhanden sind. Diese werden gegebenenfalls gelöscht.
Im nächsten Schritt werden Engine, Standard-Zeichensatz und Schlüssel der einzelnen Tabellen überprüft und wenn nötig korrigiert.
Anschließend werden für jede Tabelle die Spaltennamen und die Attribute (oder auch Eigenschaften) der Spalten geprüft. Auch hier wird gegebenenfalls korrigiert, was von den Vorgaben aus der Installationsdatei abweicht.
Im vorletzten Schritt werden die Asset-IDs der Datensätze in den Tabellen geprüft. Wenn keine Asset-ID vorhanden ist, wird versucht, diese neu zu erstellen. Fehlt diese nämlich, dann ist es nicht möglich, einen Datensatz zu löschen. Wenn die Asset-ID nicht erstellt werden kann, dann muss der Datensatz ein Mal von Hand geöffnet und gespeichert werden. Die Asset-ID fehlt zum Beispiel, wenn man die Tabellen von BwPostman direkt in die Datenbank von Joomla!® einliest, zum Beispiel über phpMyAdmin.
Zum Abschluss wird noch nachgesehen, ob die eingetragenen User-IDs aus Joomla!® noch stimmen und gegebenenfalls auch berichtigt. Dies geschieht, indem die Mailadressen der Abonnenten mit den Mailadressen der Benutzer in Joomla!® verglichen werden.
Es wird also versucht, essentielle Fehler ebenso wie nicht ganz so tragische Probleme aufzuspüren und zu korrigieren. Die wichtigen Fehler werden in rot dargestellt, kleiner Probleme in orange-gelb. Wenn so etwas in der Übersicht auftaucht, dann steht das Ergebnis des Reparaturversuches direkt darunter. Erst wenn das auch in rot erscheint, ist ein Fehler aufgetreten, der nicht automatisch repariert werden kann.
Tabellen sichern
Die Sicherung der Tabellen empfiehlt sich immer wieder einmal, vor allem vor einer Überprüfung/Reparatur der Tabellen, man weiß ja nie…
Mit einem Klick auf die Schaltfläche Tabellen sichern werden die Strukturen und Daten der Tabellen im XML-Format zusammengestellt und man bekommt von seinem Browser ein Fenster angezeigt, wo er fragt, was mit dieser Datei geschehen soll. Sinnvoll ist es, die Datei (lokal) zu speichern. Gut merken, wo man sie abgelegt hat, vielleicht braucht man sie ja noch mal!
Seit Version 1.3.0 von BwPostman werden auch die Berechtigungen der Komponente, der Tabellen und der einzelnen Datensätze gesichert. Weil die Berechtigungen mit den Benutzergruppen verknüpft sind, werden auch die Benutzergruppen und deren Eltern-Gruppen, für die Berechtigungen für BwPostman vergeben sind, gesichert.
Seit Version 2.1.0 von BwPostman kann diese Sicherungsdatei auch gepackt werden, damit man die Dateigröße verringern kann. Als Format dafür wird ZIP verwendet.
Die Sicherung wird automatisch gepackt, wenn in den Optionen von BwPostman unter Grundeinstellungen der Schalter Sicherungsdatei komprimieren aktiviert ist.
Die Sicherungsdatei wird nicht nur zum Download angeboten, sie wird auch bis zur Version 3.0.0 im Ordner
<Joomla-Installationsverzeichnis>/images/bw_postman/backup_tables/
ab Version 3.0.0 im Ordner
<Joomla-Installationsverzeichnis>/images/com_bwpostman/backup_tables/
abgelegt. Somit kann man auch über dein Medien-Manager von Joomla!® die Datei löschen.
Tabellen wiederherstellen
Das Wiederherstellen der Tabellen klappt leider nicht mit einem einzigen Klick:
Ein Klick auf die Schaltfläche Tabellen wiederherstellen führt zu der Ansicht, in der man die Datei auswählen kann, in der die Daten liegen, die zuvor einmal gesichert wurden. Der Klick auf Wiederherstellung starten löst dann das Einspielen der Sicherung in die Datenbank aus.
Dabei werden alle vorhandenen Tabellen von BwPostman aus der Datenbank gelöscht und nur die gesicherten Daten sind anschließend vorhanden!
Seit Version 2.1.0 von BwPostman erkennt das Wiederherstellen einer Sicherung von BwPostman, ob die Datei gepackt ist und wird automatisch ausgepackt, bevor sie wiederhergestellt wird.
Direkt nach dem Wiederherstellen wird automatisch eine Überprüfung nach obigem Verfahren ausgelöst, damit sichergestellt ist, dass die Tabellen in ihrer Struktur auch zur installierten Version passen. Das Ergebnis wird natürlich auch Schritt für Schritt angezeigt.
Über die Schaltfläche Zurück oben rechts in der Toolbar kommt man wieder zur Wartung zurück.
Die Wiederherstellung der Tabellen funktioniert ausschließlich nur mit Sicherungen, die mit BwPostman erstellt wurden!
Seit Version 1.3.0 von BwPostman werden auch die Berechtigungen der Komponente, der Tabellen und der einzelnen Datensätze gesichert. Weil die Berechtigungen mit den Benutzergruppen verknüpft sind, werden auch die Benutzergruppen und deren Eltern-Gruppen, für die Berechtigungen für BwPostman vergeben sind, gesichert.
Bei der Wiederherstellung wird dann auch die Struktur dieser Benutzergruppen wiederhergestellt. Dabei überprüft BwPostman anhand des Namens der Benutzergruppe, ob die in der Sicherung hinterlegten Benutzergruppen noch vorhanden sind und dieselbe ID haben. Nicht mehr vorhandene Benutzergruppen werden nicht neu erstellt, denn ich kann nicht wissen, aus welchem Grund diese Benutzergruppen entfernt wurden. Meist hat dies ja einen triftigen Grund. Wenn die Benutzergruppen mit ihren Namen noch vorhanden sind, dann werden die in der Sicherung von BwPostman hinterlegten Benutzergruppen auf die neue ID angepasst.
Sollte wider Erwarten die Wiederherstellung abbrechen, so ist das in der Regel kein Beinbruch. BwPostman erstellt vor dem Wiederherstellen einen Wiederherstellungspunkt. Auf diesen wird automatisch zurück gestellt, sollte die Wiederherstellung fehlschlagen. Somit ist ziemlich gewährleistet, dass BwPostman immer in einer lauffähigen Version vorhanden ist und man nicht mit leeren oder fehlenden Tabellen da steht.
Leider gibt es immer noch Fälle, wo die Wiederherstellung so abbricht, dass auch der Wiederherstellungspunkt nicht automatisch wiederhergestellt werden kann. In diesem Fall muss man in der Datenbank, zum Beispiel über phpMyAdmin, von Hand eingreifen. Der Wiederherstellungspunkt ist dort jeweils eine Kopie der Tabellen mit dem Suffix _tmp. Wenn man bisher noch keine Datenbank-Sicherung gemacht hat, ist jetzt der richtige Zeitpunkt dafür! Wenn man alle Tabellen löscht, die das Original der Tabellen mit dem Suffix _tmp sind, das sind also die Tabellen ohne den Suffix _tmp, und anschließend bei den Tabellen mit dem Suffix _tmp diesen entfernt, hat man dennoch eine lauffähige Version.
Migration von BwPostman auf eine andere Joomla!®-Installation?
Wenn man das obige liest, dann stellt sich so mancher die Frage: Kann ich mit Tabellen sichern und Tabellen wiederherstellen von einer Joomla!®-Installation auf eine andere umziehen?
Die Antwort lautet: Ja, bedingt und wenn BwPostman schon auf dieser Installation von Joomla!® installiert ist.
Mailinglisten, Kampagnen und Templates bereiten dabei absolut keine Schwierigkeiten. Bei den Abonnenten werden unter anderem aus diesem Grund die eingetragenen User-IDs beim Überprüfen der Tabellen ebenfalls kontrolliert und mit Joomla!® abgeglichen, sofern möglich.
Schwieriger wird es bei den Newslettern. BwPostman speichert neben der HTML-Version und der Text-Version des Newsletters auch die IDs der Beiträge ab. Wenn die Beiträge aus Joomla!® ebenfalls exakt, das heißt inhaltlich und mit der ID, übereinstimmen, dann ist das absolut kein Problem. Wenn jedoch Inhalt oder IDs unterschiedlich sind oder gar Inhalte, für die der Newsletter eine ID hat, in der anderen Installation einen ganz anderen Beitrag haben, dann wird es für unversendete Newsletter spätestens beim Bearbeiten in der neuen Installation schwierig.
Am besten probiert man solche Sachen an einer Joomla!®-Installation aus, die zum Testen gedacht ist, bevor man damit in eine Produktivumgebung geht.