SQL-Error bei Datenbank-Update
Nein, mir ist noch nicht ganz klar, was hier schief läuft.
Im Moment tippe ich darauf, dass euer DB-User zu wenig Rechte hat um bestehende Tabellen zu manipulieren.
Um hier eine Lösung zu finden, könnte man dies wie folgt mal versuchen:
Du spielst ein 1.4 Backup zurück, machst ein Update auf 2.0.x, welches dann auf einen Fehler läuft und würdest mir Zugang zu der DB gewähren, dann könnte ich schauen, wo er im Updatescript hängen geblieben ist und wir wüssten dann schon mal, an welchem Befehl es hapert.
Im Moment tippe ich darauf, dass euer DB-User zu wenig Rechte hat um bestehende Tabellen zu manipulieren.
Um hier eine Lösung zu finden, könnte man dies wie folgt mal versuchen:
Du spielst ein 1.4 Backup zurück, machst ein Update auf 2.0.x, welches dann auf einen Fehler läuft und würdest mir Zugang zu der DB gewähren, dann könnte ich schauen, wo er im Updatescript hängen geblieben ist und wir wüssten dann schon mal, an welchem Befehl es hapert.
Können wir gerne machen!fasse hat geschrieben:Nein, mir ist noch nicht ganz klar, was hier schief läuft.
Im Moment tippe ich darauf, dass euer DB-User zu wenig Rechte hat um bestehende Tabellen zu manipulieren.
Um hier eine Lösung zu finden, könnte man dies wie folgt mal versuchen:
Du spielst ein 1.4 Backup zurück, machst ein Update auf 2.0.x, welches dann auf einen Fehler läuft und würdest mir Zugang zu der DB gewähren, dann könnte ich schauen, wo er im Updatescript hängen geblieben ist und wir wüssten dann schon mal, an welchem Befehl es hapert.
Ich versuche das mal lokal zu Hause nachzustellen....
Bis dann
Andree
Andree
-
- Beiträge: 8
- Registriert: 15. Okt 2008, 16:15
Ich hatte auch diesen Fehler. Leider konnte hier keine richtige Lösung gegeben werden. So habe ich mich durch try and error auf die Suche gemacht und festgestellt, daß das Update bei folgendem Statement hängenbleibt:
Das Problem liegt nicht in den Benutzerrechten, sondern an den zu diesem Zeitpunkt unterschiedlichen Kollationen. Die alte Tabelle %PRAEFIX%_organizations ist noch Latin, die neue %PRAEFIX%_folders schon in utf8. Nach Umstellung der Tabelle %PRAEFIX%_organizations auf utf8 funktioniert das Statement...
Gruß vom Handballer
Code: Alles auswählen
alter table %PRAEFIX%_folders add constraint %PRAEFIX%_FK_FOL_ORG foreign key (fol_org_id)
references %PRAEFIX%_organizations (org_id) on delete restrict on update restrict;
Gruß vom Handballer
Ui, jetzt wird es aber kompliziert.
Da wir die Kollationen beim Anlegen der Tabelle nicht angeben, nimmt er das Default aus der Datenbank. Wahrscheinlich hat der Hoster hier in der Zwischenzeit diese Default-Kollationen von Latin1 auf UTF8 umgestellt, so dass die neue Folders-Tabelle dann eine andere besitzt, wie die alte Organization-Tabelle.
Vielen Dank für den Hinweis, der könnte wahrscheinlich bei einigen Problemen in dieser Richtung die Ursache sein.
Viele Grüße
Fasse
Da wir die Kollationen beim Anlegen der Tabelle nicht angeben, nimmt er das Default aus der Datenbank. Wahrscheinlich hat der Hoster hier in der Zwischenzeit diese Default-Kollationen von Latin1 auf UTF8 umgestellt, so dass die neue Folders-Tabelle dann eine andere besitzt, wie die alte Organization-Tabelle.
Vielen Dank für den Hinweis, der könnte wahrscheinlich bei einigen Problemen in dieser Richtung die Ursache sein.
Viele Grüße
Fasse
-
- Beiträge: 8
- Registriert: 15. Okt 2008, 16:15
So, um es noch komplizierter zu machen noch ein paar Nachträge. Entgegen meiner vorherigen Aussage liegt es nicht nur an der Kollation:
Ich benutze zur Zeit die Version 1.4.8 . Nun wollte ich auf die neue 2er updaten. In meiner Datenbank sind alle Tabellen im Typ MyISAM und mit der Kollation latin1_swedish_ci gespeichert. Beim Update kamen also diverse Fehlermeldungen. Durch folgende Änderungen lief das update dann doch durch:
Dazu noch ein paar weitere Fragen:
Wann wurde der FOREIGN KEY %PRAEFIX%_FK_ROL_ORG integriert? Bei mir existiert dieser nicht was vermutlich den Fehler auslöst ...
Viele Grüße vom Handballer
Ich benutze zur Zeit die Version 1.4.8 . Nun wollte ich auf die neue 2er updaten. In meiner Datenbank sind alle Tabellen im Typ MyISAM und mit der Kollation latin1_swedish_ci gespeichert. Beim Update kamen also diverse Fehlermeldungen. Durch folgende Änderungen lief das update dann doch durch:
- - In der Datenbank die Tabellen adm_organizations, adm_roles und adm_users auf den Typ InnoDB stellen.
- Im Update file upd_2_0_0_db.sql die Zeilelöschen.Code: Alles auswählen
ALTER TABLE %PRAEFIX%_roles DROP FOREIGN KEY %PRAEFIX%_FK_ROL_ORG;
Dazu noch ein paar weitere Fragen:
Wann wurde der FOREIGN KEY %PRAEFIX%_FK_ROL_ORG integriert? Bei mir existiert dieser nicht was vermutlich den Fehler auslöst ...
Viele Grüße vom Handballer
Hallo Handballer,
kann es sein, dass dein Hoster vielleicht mittlerweile InnoDB zulässt ?
Dieser ForeignKey sollte schon seit Admidio 1.0 existieren. Hattest du aber am Anfang kein InnoDB zur Verfügung, wurde er natürlich nicht angelegt. Allerdings sollte dein Drop dann auch nicht auf einen Fehler laufen, da dies bei MyIsam generell der Fall ist und wir viele Leute haben, die MyIsam benutzen. So ganz kann dies noch nicht die Ursache sein.
Viele Grüße
Fasse
kann es sein, dass dein Hoster vielleicht mittlerweile InnoDB zulässt ?
Dieser ForeignKey sollte schon seit Admidio 1.0 existieren. Hattest du aber am Anfang kein InnoDB zur Verfügung, wurde er natürlich nicht angelegt. Allerdings sollte dein Drop dann auch nicht auf einen Fehler laufen, da dies bei MyIsam generell der Fall ist und wir viele Leute haben, die MyIsam benutzen. So ganz kann dies noch nicht die Ursache sein.
Viele Grüße
Fasse