Neuinstallation mit alter Datenbank?

Hallo, liebe Elgg-Spezialistinnen und -Spezialisten!

In einem anderen Thread hatte ich vor etwa zwei Wochen meine Probleme nach einem Upgrade-Versuch von 1.8.8 zu 1.8.11 geschildert. Wie sich mittlerweile herausgestellt hat, hatte iionly mit seinem Sachverstand den richtigen Verdacht: Der Fehler lag in einem Datenbankeintrag (ich hatte die Installation vor einiger Zeit wohl verschoben oder kopiert und den Pfad in elgg_datalists nicht angepasst :-( ...). Meine Versuche, das Ding zu retten, hatten aber in der Zwischenzeit wohl zu viel Schaden angerichtet, sodass meine Installation "letzter Hand" genau genommen nicht mehr brauchbar ist. Natürlich habe ich sowohl von den Dateien der Installation (v.a. mod-Übersetzungen!) als auch von der Datenbank Backups unterschiedlichen Alters, sodass ich jetzt während der Weihnachtsferien folgendes versuchen möchte:

  1. Neuinstallation von Elgg in der Version 1.8.11
  2. Einspielen der deutschen Übersetzung und schrittweises Hochladen der verwendeten Plugins und Themes
  3. Import der benutzerspezifischen Daten aus der Datenbank (Benutzerdaten, Forenbeiträge, Blogs, Mitteilungen etc.)

Haltet ihr das Vorgehen für grundsätzlich richtig? Gibt es (sicherere) Alternativen? Welche Tabellen der alten Datenbank kann ich gefahrlos importieren ohne Installationseinstellungen der neuen Elgg-Installation zu überschreiben?

 

Für euren fachlichen Rat dankt mit vorweihnachtlichem Gruß

 

Andreas.

  • Ich befürchte, das Importieren von benutzerspezifischen Dateinbankeinträgen wird nicht in der Weise möglich sein, wie Du es Dir vorstellst. Die verschiedenen Tabellen sind nicht unabhängig voneinander, sondern in vielfacher Weise durch Einträge miteinander verknüpft. Darüber hinaus gibt es eindeutige IDs, die in der Datenbank nur einmalig vorkommen dürfen. Das ganze ist ähnlich einem Zähler, der bei Erstellen eines neuen Objektes jeweils um 1 hochgezählt wird. Du kannst also in eine Datenbank, die bereits Einträge hat (Zähler >1) nicht andere Datenbankeinträge aus einer anderen Datenbank hinzufügen, deren Daten für sich gesehen ebenfalls mit IDs ab 1 aufwärts beginnen. Als Folge hättest Du dann nicht zueindander passende Verküpfungen der Datenbankeinträge untereinander (und auch der Verweise zu Dateien im Datenverzeichnis).

    So weit ich weiß gibt es noch keine Möglichkeit, Benutzer zusammen mit all ihren Daten zu exportieren und in eine andere Seite zu exportieren. Ich will nicht sagen, dass es theoretisch nicht möglich wäre, zwei Datenbanken miteinander zu vereinen. Aber es wäre mit Sicherheit ein sehr großer Aufwand und entsprechendes Expertenwissen notwendig (ich kann nicht mal sagen, wie man dass machen könnte da ich da mit Sicherheit nicht ansatzweise genug Ahnung habe).

    Die grundsätzliche Frage ist auch, was mit Deiner alten Datenbank nicht mehr stimmt. Wenn Du die Tabellen einfach übernehmen würdest, würdest Du ja auch die Fehler mit übernehmen. Du müßtest also auch die Fehler fixen, bevor es mit der neuen Seite funktioniert. Wenn allerdings die Fehler reparabel sind, dann sollte es auch möglich sein, die alte Datenbank als ganzes weiter zu verwenden - und das wäre mit Sicherheit einfacher als dann zusätzlich noch zu versuchen, einzelne Tabellen in eine neue Datenbank zu importieren.

    Was ich Dir vorschlagen würde:

    Setze eine (am besten lokale) Testinstallation auf (Elgg 1.8.11). Mit der Installation von zusätzlichen Plugins und Übersetzungen würde ich da erst mal noch warten. Ersetze dann das Datenverzeichnis mit dem Backup Deiner alten Seite und die Datenbank komplett mit dem Backup Deiner alten Seite. Nun mußt Du noch einige Datenbankeinträge anpassen (http://docs.elgg.org/wiki/DuplicateInstallation). Stelle sicher, dass alle 4 erwähnten Datenbankeinträge zur Testinstallation passen.

    Jetzt hast Du eine Seite, bei der Du versuchen kannst, die alte Datenbank zu reparieren bzw. erst mal herauszufinden, wo genau das Problem liegt. Wenn das Datenverzeichnis älter oder neuer ist, fehlen eventuell Dateien ("File not found" - Einträge können auf der Seite gelöscht werden) oder es sind Dateien vorhanden auf die von der Seite aus nicht zugegriffen werden kann (was aber dann auch nicht sooo tragisch wäre). Falls die Daten durch 3rd Party Plugins hinzugefügt wurden, würde ich da erst mal gar nichts machen. Falls überhaupt keine Daten aus dem Datenverzeichnis angezeigt werden, kann das auch daran liegen, dass die Zeitzone auf Deinem Server und in der Testinstallation unterschiedlich sind (http://docs.elgg.org/wiki/No_images).

    Das Database Validator Plugin (http://community.elgg.org/plugins/438616/1.4/database-validator) kannst Du installieren, um eventuell einige Fehler zu beseitigen (Version 1.4 ist für Elgg 1.8). Falls Du phpMyAdmin zur Verfügung hast, kannst Du mal schauen, ob es eventuell fehlerhafte Tabellen in der Datenbank gibt, die repariert werden könnten.

    Falls die Basis (Elgg mit seinen eigenen Plugins) wieder funktioniert, kannst Du die vorher zusätzlich installierten Plugins nach und nach wieder hinzufügen. Da würde ich langsam vorgehen, um zu sehen, ob es da eventuell Probleme gibt. Die Übersetzungen sind völlig unabhängig von Datenbank und Datenverzeichnis, d.h. Du kannst sie zwar letztlich zur Testinstallation hinzufügen oder aber Du wartest damit, bis Du Deine Seite wieder vollständig hergestellt hast.

    Wenn Deine Seite in der Testinstallation wieder funktioniert, kannst Du sie wieder auf Deinem Server einrichten. Im Grunde kannst Du das Installationsverzeichnis mitsamt Plugins direkt kopieren. Eventuell mußt Du in .htaccess und in engine/settings.php Änderungen vornehmen. Das Datenverzeicnis kannst Du auch einfach kopieren. Die Datenbank mußt Du wieder vollständig durch die neue Version aus Deiner Testinstallation ersetzen und dann wiederum die Datenbankeinträge entsprechend der Installationsumgebung anpassen.

    Ich hoffe, Du bekommst Deine Seite wieder in Ordnung!

German Support Group

German Support Group

The German support group within the Elgg community.