Hallo,
ich hab eine Möglichkeit gefunden. Deshalb hier für alle die vielleicht auch vor einem ähnlichen Problem stehen.
Kommentar von den Entwicklern erwünscht.
Ich garantiere aber für nichts, da ich mich SQL-Datenbanken nicht besonders auskenne. Außerdem kann ich noch nicht sagen welche weiteren Probleme im laufenden Betrieb auftreten.
Eine Datensicherung ist bei produktiven Systemen dringend anzuraten!
Vorraussetzungen:
2. Rechner mit MySQL 5.0, Apache und alles weitere was eGroupWare 1.4.001 braucht. Ich habe hier UBUNTU 7.04 in einer VMWARE verwendet.
Laufendes PostgreSQL auf der Zielmaschine.
Ausgangs-Charset in der Datenbank: ISO-8859-1.
- Dump aus der alten 3er MySQL ziehen:
mysqldump -u roor -p egroupware > [Pfad]/mysql3-dump.sql
Der Pfad sollte für 2. Maschine erreichbar sein!
- Auf der zweiten Maschine die eGW 1.4.001-Datenbank (hier Snapshot vom 16.08.2007) auf MySQL 5.0 einrichten
Wichtig: Alle Tätigkeiten sind mit ISO-5589-1 Zeichensatz vorzunehmen. Auch die Datenbank muss von Hand ohne “DEFAULT CHARSET SET utf8” eingerichtet werden. Sonst geht’s nicht!
- Headerverwaltung (Passwörter und Datenbankeinstellungen setzen)
- Datenbank (Sonst keine weiteren Einstellungen vornehmen. Die Datenbank muss nur gefunden werden!)
- Diesen Dump in der 2. Maschine in die MySQL 5.0 hineinlaufen lassen
mysql -u root -p egroupware < [Pfad]/mysql3-dump.sql
Dies sollte ohne Probleme laufen!
- Auf der zweiten Maschine eGW 1.4.001 nochmal im Admin-Bereich anmelden und eGW einrichten
- Datenaktualisierung von 1.0.0.007 nach 1.4.001 (Datensicherung nicht nötig)
- Konfiguration überarbeiten und anpassen (“Gegenwärtige Konfiguration überarbeiten”)
- Anwendungen verwalten (1. installieren, 2. aktualisieren, 3. evtl. löschen)
-
Im Admin ("Sichern und Wiederherstellen) die Datenbank sichern und in ein Verzeichnis downloaden wo man mit Vi und bzip2 herankommt.
-
Backupdatei mit bunzip2 entpacken und mit VI öffnen. Folgende Strings suchen und ersetzen:
“0000-00-00” ersetzen durch ""
0000-00-00 00:00:00 ersetzen durch aktuelles Datum z. B.: 2007-08-16 00:00:00
Beispiel für Vi: :1,$s/“0000-00-00”/""/g
Datei wieder mit bzip2 packen!
- Auf der entgültigen Maschine eGW 1.4.001 mit PGSQL einrichten:
Zur Datenbankeinrichtung:
su postgres
createuser --no-adduser --no-createdb -P egroupware
createdb --encoding=utf-8 --owner egroupware egroupware
\q
Das eGW-Verzeichnis auf dem Server gegen die neue Version austauschen:
- Installation überprüfen und Fehler beheben. Hier müssen evt. PEAR-Pakete nachinstalliert werden
- Rechte setzen
- Die Headerverwaltung aufrufen.
In der Headerverwaltung muss bei PostgreSQL kein Datenbankhostname angegeben werden.
- Wenn ohne Fehler dann das Admin-Setup aufrufen.
Hierbei fragt das Setup ob ein Backup zurückgespielt werden soll. Hier dann das geänderte Backup zurückspielen lassen. Hierbei keine Konvertierung des Datensatzes vornehmen.
-
Anschließend “Gegenwärtige Konfiguration überarbeiten” und entsprechend anpassen
-
Dann “Anwendungen verwalten” aufrufen. Hier sollten keine Änderungen erforderlich sein. Wenn doch, dann beheben.
-
Den Charset gemäß Beschreibung im Admin-Setup auf UTF-8 umstellen.
-
Spaltentyp in der Tabelle “egw_felamimail_signatures” von “smallint” nach “boolean” ändern sonst hagelt´s SQL-Fehler im Felamimail:
su postgres
pgsql egroupware
ALTER TABLE egw_felamimail_signatures ADD COLUMN sik boolean;
UPDATE egw_felamimail_signatures SET sik = true WHERE fm_defaultsignature =1;
UPDATE egw_felamimail_signatures SET sik = false WHERE fm_defaultsignature =0;
ALTER TABLE egw_felamimail_signatures DROP COLUMN fm_defaultsignature;
ALTER TABLE egw_felamimail_signatures RENAME sik TO fm_defaultsignature;
\q
Alternativ kann mann auch Felamimail deinstallieren und wieder installieren. Dann sind aber die Signaturen weg.
Ich hoffe geholfen zu haben.