Allgemeine Hinweise zu Upgrades
Posted: Thu Aug 05, 2010 9:26 pm
O Gott! Eine neue Version ist draußen...
Einige von Euch kennen es bestimmt:
Upgrades auf neuere Versionen - egal ob nun das gesamte CMS oder nur einzelne Module - können mitunter zu einem haareraufenden Albtraum werden. Viele Nutzer stehen dadurch verständlicherweise einem jeden Upgrade immer sehr kritisch gegenüber bzw. zögern damit häufig bis es keinen Support mehr für ihre Version gibt. Dann wird das Ganze erst recht ärgerlich, denn oftmals sind größere Versionssprünge mit weiteren Problemen belastet. Es müssen dann oft auch sehr viele Module mit auf den neuesten Stand gebracht werden oder man braucht eine neuere PHP Version, einen anderen Provider oder oder oder etc. pp.
Die jüngsten Ereignisse - seit dem Erscheinen der Version 1.8 - haben mir verdeutlicht, dass die meisten Probleme bei einem Upgrade nichts mit CMSms oder dem jeweiligen Modul zu tun haben, sondern mit den Systemvorraussetzungen wie z.B. Dateizugriffsrechte, PHP Version oder Datenbankeinstellungen.
Dieses Thema soll alle möglichen Probleme die bei einem Upgrade auftreten können und evtl. deren Lösungen schon im Vorfeld benennen.
Was bisher noch nie geschadet hat, ist ein Backup sowohl der Datenbank als auch der eigenen Dateien (die im Uploads-Verzeichnis).
Ansonsten beginne ich mal mit einem noch relativ unbekannten (weil eher seltenem) Problem.
Teil 1: Datenbankberechtigungen
Wie einige vielleicht schon wissen baut CMSms auf einem Datenbank-Layer AdoDB Lite auf.
Bei einigen Upgrades müssen Änderungen an der Datenbank vorgenommen werden.
Oftmals werden den Tabellen, die beim Installieren angelegt wurden, weitere Felder hinzugefügt.
Dazu werden je nach Bedarf zwei Funktionen des AdoDB Layers verwendet: AddColumnSQL() und AlterColumnSQL().
Laut dem AdoDB Data Dictionary Handbuch funktionieren diese Funktionen aber nicht bei allen Datenbanken und auch nicht in allen Situationen.
Genaugenommen bedeutet dies, dass man als Datenbanknutzer entsprechende Rechte haben muss, um diese Funktionen ausführen zu können.
Bei MySQL heißt das, dass man zusätzlich zu den Rechten Tabellen zu erstellen (CREATE) und Inhalte einzufügen (INSERT) auch noch das Recht haben muss, die Struktur einer bereits bestehenden Tabelle ändern zu können (ALTER TABLE).
Mehr Informationen zu den MySQL Berechtigungen kann man hier nachlesen:
http://dev.mysql.com/doc/refman/5.1/de/ ... vided.html
Wie es bei anderen Datenbanken aussieht weiß ich jetzt nicht, aber es könnte durchaus ähnlich sein.
Bei unzureichenden Berechtigungen führt es dazu, dass diese zusätzlichen Felder nicht angelegt werden und demzufolge die neue Version auch nicht fehlerfrei funktionieren kann.
Das ist übrigens auch der Grund dafür, dass manche Upgrades fehlschlagen, aber eine Neuinstallation problemlos funktioniert.
Hier einige aktuelle Beispiele bei denen sich im Laufe der Diskussion herausgestellt hat, dass genau das der Fall war:
http://forum.cmsmadesimple.org/index.ph ... 656.0.html
http://forum.cmsmadesimple.org/index.ph ... 935.0.html
http://forum.cmsmadesimple.org/index.ph ... 268.0.html
Also bitte tut Euch selbst einen Gefallen und prüft vor jedem Upgrade genau nach, ob ihr ausreichend Datenbankrechte habt. Im Zweifel einfach Euren Provider fragen, ob es Euch gestattet ist, via PHP-Script Änderungen an bestehenden Datenbanktabellen vorzunehmen. Die Stichworte "ALTER TABLE" und "ADD COLUMN" sollten Eurem Provider schon den richtigen Hinweis geben.
Ich hoffe damit einige bislang noch ungelöste Fragen klären zu können.
Einige von Euch kennen es bestimmt:
Upgrades auf neuere Versionen - egal ob nun das gesamte CMS oder nur einzelne Module - können mitunter zu einem haareraufenden Albtraum werden. Viele Nutzer stehen dadurch verständlicherweise einem jeden Upgrade immer sehr kritisch gegenüber bzw. zögern damit häufig bis es keinen Support mehr für ihre Version gibt. Dann wird das Ganze erst recht ärgerlich, denn oftmals sind größere Versionssprünge mit weiteren Problemen belastet. Es müssen dann oft auch sehr viele Module mit auf den neuesten Stand gebracht werden oder man braucht eine neuere PHP Version, einen anderen Provider oder oder oder etc. pp.
Die jüngsten Ereignisse - seit dem Erscheinen der Version 1.8 - haben mir verdeutlicht, dass die meisten Probleme bei einem Upgrade nichts mit CMSms oder dem jeweiligen Modul zu tun haben, sondern mit den Systemvorraussetzungen wie z.B. Dateizugriffsrechte, PHP Version oder Datenbankeinstellungen.
Dieses Thema soll alle möglichen Probleme die bei einem Upgrade auftreten können und evtl. deren Lösungen schon im Vorfeld benennen.
Was bisher noch nie geschadet hat, ist ein Backup sowohl der Datenbank als auch der eigenen Dateien (die im Uploads-Verzeichnis).
Ansonsten beginne ich mal mit einem noch relativ unbekannten (weil eher seltenem) Problem.
Teil 1: Datenbankberechtigungen
Wie einige vielleicht schon wissen baut CMSms auf einem Datenbank-Layer AdoDB Lite auf.
Bei einigen Upgrades müssen Änderungen an der Datenbank vorgenommen werden.
Oftmals werden den Tabellen, die beim Installieren angelegt wurden, weitere Felder hinzugefügt.
Dazu werden je nach Bedarf zwei Funktionen des AdoDB Layers verwendet: AddColumnSQL() und AlterColumnSQL().
Laut dem AdoDB Data Dictionary Handbuch funktionieren diese Funktionen aber nicht bei allen Datenbanken und auch nicht in allen Situationen.
Genaugenommen bedeutet dies, dass man als Datenbanknutzer entsprechende Rechte haben muss, um diese Funktionen ausführen zu können.
Bei MySQL heißt das, dass man zusätzlich zu den Rechten Tabellen zu erstellen (CREATE) und Inhalte einzufügen (INSERT) auch noch das Recht haben muss, die Struktur einer bereits bestehenden Tabelle ändern zu können (ALTER TABLE).
Mehr Informationen zu den MySQL Berechtigungen kann man hier nachlesen:
http://dev.mysql.com/doc/refman/5.1/de/ ... vided.html
Wie es bei anderen Datenbanken aussieht weiß ich jetzt nicht, aber es könnte durchaus ähnlich sein.
Bei unzureichenden Berechtigungen führt es dazu, dass diese zusätzlichen Felder nicht angelegt werden und demzufolge die neue Version auch nicht fehlerfrei funktionieren kann.
Das ist übrigens auch der Grund dafür, dass manche Upgrades fehlschlagen, aber eine Neuinstallation problemlos funktioniert.
Hier einige aktuelle Beispiele bei denen sich im Laufe der Diskussion herausgestellt hat, dass genau das der Fall war:
http://forum.cmsmadesimple.org/index.ph ... 656.0.html
http://forum.cmsmadesimple.org/index.ph ... 935.0.html
http://forum.cmsmadesimple.org/index.ph ... 268.0.html
Also bitte tut Euch selbst einen Gefallen und prüft vor jedem Upgrade genau nach, ob ihr ausreichend Datenbankrechte habt. Im Zweifel einfach Euren Provider fragen, ob es Euch gestattet ist, via PHP-Script Änderungen an bestehenden Datenbanktabellen vorzunehmen. Die Stichworte "ALTER TABLE" und "ADD COLUMN" sollten Eurem Provider schon den richtigen Hinweis geben.
Ich hoffe damit einige bislang noch ungelöste Fragen klären zu können.