SQL-Error bei Datenbank-Update

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

SQL-Error bei Datenbank-Update

Beitrag von bettes »

Erst mal hallo zusammen und ein großes Lob an die Entwickler von admidio.
Tolles Mitgliederverwaltungsprogramm.

Ich setze für unseren Verein nun seit ca. 6 Monaten die Version 1.4.x ein und kann sagen, dass diese auch bisher ohne Probleme lief.

Habe heute mit dem Update gemäß Beschreibung angefangen, Leider erhalte ich bei Punkt 6. Datenbankupdate nachfolgende Fehlermeldung:

"S Q L - E R R O R

CODE: 1025
Error on rename of './mvmdb1/adm_user_fields' to './mvmdb1/#sql2-126f-1b5269' (errno: 152)

B A C K T R A C E

FILE: adm_program/system/mysql_class.php
LINE: 77
CALL: mysqldb->db_error()

FILE: adm_install/update.php
LINE: 177
CALL: mysqldb->query()

Ein manuelles Umbenennen einer Datenbank funktioniert, nur scheint es bei der Umbenennung mittels Script einen Fehler zu geben.

Bei einem zweiten Versuch läuft die Update-Routine auf den nächsten Fehler:

Unknown column 'rol_moderation' in 'adm_roles'

Wie kann ich den Fehler beheben?

Gruß
bettes
Benutzeravatar
fasse
Administrator
Beiträge: 6184
Registriert: 12. Nov 2005, 16:06

Re: SQL-Error bei Datenbank-Update

Beitrag von fasse »

bettes hat geschrieben:Bei einem zweiten Versuch läuft die Update-Routine auf den nächsten Fehler:

Unknown column 'rol_moderation' in 'adm_roles'
Ein 2. Versuch kann auch nicht mehr funktionieren, da er beim ersten Mal schon Sachen geändert hat und dann erst auf einen Fehler gelaufen ist. Beim 2. Mal findet er bestimmte Sachen garnicht mehr.

Ich hoffe du hast ein Backup.
Wenn ja, dann alles Löschen, Backup wieder einspielen und bitte mal ausprobieren, ob folgende Befehle bei dir laufen:

Code: Alles auswählen

ALTER TABLE adm_user_fields ADD COLUMN `usf_system` tinyint(1) unsigned NOT NULL DEFAULT 0 AFTER `usf_description`;

Code: Alles auswählen

ALTER TABLE adm_user_fields CHANGE COLUMN `usf_locked` `usf_hidden` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0;
Nach meiner Einschätzung müsste der erste Laufen und der 2. bei dir Probleme geben. Allerdings wundert es mich, dass du diese Rechte nicht hast.

Welche DB-Version nutzt du von Mysql ?
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

Backup eingespielt und SQL-Statement abgesetzt

Beitrag von bettes »

Hallo fasse,

habe Gott sei Dank ein Backup und dieses wieder zurückgespielt. Auch die beiden SQL-Statements laufen ohne Probleme durch. Bei wird kommt die Meldung ohne Felder ausgeführt.

Habe einen erneuten Versuch gestartet. Leider tritt aber weiterhin der Fehler auf.
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

SQL-Fehler: gelöst

Beitrag von bettes »

Hallo fasse,

habe nun zum dritten mal ein Backup eingespielt. Dieses war ein paar Tage älter, was aber nicht so schlimm ist, denn die zwischenzeitlichen Änderungen lassen sich nachvollziehen.

Daraufhin habe ich nochmals Deine SQL-Test-Statements abgesetzt und wieder rückgängig gemacht.
Und siehe da, es funktioniert nun. Ich habe mir daraufhin mal mein letztes Backup angesehen, aber leider keine Auffälligkeiten gefunden.

Weitere Erklärungen habe ich nicht. Werde mich nun mit dem nächsten Punkt der Updateanleitung widmen.

Vielen Dank für Deine Mühen.

Gruß
Bettes
Benutzeravatar
fasse
Administrator
Beiträge: 6184
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Man muss nicht immer alles verstehen :)

Aber schön, dass es jetzt scheinbar läuft.
Andree
Beiträge: 78
Registriert: 18. Jan 2008, 16:00
Wohnort: Celle
Kontaktdaten:

Beitrag von Andree »

Hallo.

Das gleiche Problem habe ich jetzt auch.
Meldung:
CODE: 1054

Unknown column 'rol_moderation' in 'adm_roles'

B A C K T R A C E


FILE: adm_program/system/mysql_class.php
LINE: 77
CALL: DB->db_error()

FILE: adm_install/update.php
LINE: 177
CALL: MySqlDB->query()
Versionen:
MySQL: 4.1.11
PHP: 5.1.4
Admidio: 1.4.8

Zu den Test-Scripten kommt keine weiteren Hinweise:
1 Zeilen in 0.0284 Sekunde(n) abgearbeitet.

Es wurden 0 DROP-, 0 CREATE-, 0 INSERT-, 0 UPDATE-Befehle ausgeführt
Es gab 0 Kommentare

0001: ALTER TABLE
1 Zeilen in 0.0432 Sekunde(n) abgearbeitet.

Es wurden 0 DROP-, 0 CREATE-, 0 INSERT-, 0 UPDATE-Befehle ausgeführt
Es gab 0 Kommentare

0001: ALTER TABLE adm_user_fields
Wenn ich die update_140_200.sql auf die Datenbank schieße kommt diese Meldung:
Fehler bei der Anfrage:

ALTER TABLE %PRAEFIX%_roles DROP FOREIGN KEY %PRAEFIX%_FK_ROL_RLC;
MySQL meldet:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%PRAEFIX%_roles DROP FOREIGN KEY %PRAEFIX%_FK_ROL_RLC' at line 1
Bin leider nicht so der Datenbank mensch!
Bis dann

Andree
Benutzeravatar
fasse
Administrator
Beiträge: 6184
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Deine Fehlermeldung zeugt davon, dass das Update-Script beim ersten Mal nicht durchgelaufen ist und du es noch einmal gestartet hast. Dies geht leider nicht.

In deinem Fall würde ich ein Backup zurückspielen und das Update noch einmal probieren.
Andree
Beiträge: 78
Registriert: 18. Jan 2008, 16:00
Wohnort: Celle
Kontaktdaten:

Beitrag von Andree »

schon gemacht!!! Habe alle Tabellen gelöscht und das Backup eingespielt.
Geht aber nicht :cry:
Bis dann

Andree
milkaman
Former team member
Beiträge: 129
Registriert: 22. Feb 2006, 18:07

Beitrag von milkaman »

Was geht nicht?
Das einspielen des Backups?

Schau mal hier:

viewtopic.php?t=1229

Gruß

Roland
Andree
Beiträge: 78
Registriert: 18. Jan 2008, 16:00
Wohnort: Celle
Kontaktdaten:

Beitrag von Andree »

milkaman hat geschrieben:Was geht nicht?
Das einspielen des Backups?

Schau mal hier:

viewtopic.php?t=1229

Gruß

Roland
Nein nicht das Backup geht nicht - sondern das Update !!!
Ich kann gerne mal bei mir den TightVNC freischalten das ihr bei mir "mit-schauen" könnt!

Edit: Probiere das jetzt mal mit den: Fremdschlüssel aus....
Edit 2: Das Update geht trotzdem in die Hose mit:
S Q L - E R R O R

CODE: 1005

Can't create table './usr_web235_5/#sql-a95_89081c.frm' (errno: 150)

B A C K T R A C E


FILE: adm_program/system/mysql_class.php
LINE: 77
CALL: DB->db_error()

FILE: adm_install/update.php
LINE: 177
CALL: MySqlDB->query()
Bis dann

Andree
Andree
Beiträge: 78
Registriert: 18. Jan 2008, 16:00
Wohnort: Celle
Kontaktdaten:

Beitrag von Andree »

Habe jetzt mal geschaut was der 1005 ist:
1005 (ER_CANT_CREATE_TABLE)

Cannot create table. If the error message string refers to errno 150, table creation failed because a foreign key constraint was not correctly formed.
daraus werde ich auch nicht schlauer ... http://bugs.mysql.com/bug.php?id=3491
Edit: glaube das passt nicht zum Thema :oops:
Zuletzt geändert von Andree am 24. Mai 2008, 12:40, insgesamt 2-mal geändert.
Bis dann

Andree
Andree
Beiträge: 78
Registriert: 18. Jan 2008, 16:00
Wohnort: Celle
Kontaktdaten:

Re: SQL-Fehler: gelöst

Beitrag von Andree »

bettes hat geschrieben:Daraufhin habe ich nochmals Deine SQL-Test-Statements abgesetzt und wieder rückgängig gemacht.
Ich habe das mal versucht mit meinem Wissen auch zu machen und zwar:

usf_hidden umbenannt in usf_locked
usf_system gelöscht und dann das update eingespielt ...

geht bei mir aber auch nicht :cry: - versuch macht klug :cry: -
Bis dann

Andree
Andree
Beiträge: 78
Registriert: 18. Jan 2008, 16:00
Wohnort: Celle
Kontaktdaten:

Beitrag von Andree »

Ich habe jetzt mal die Datenbank mit dem PHPmyAdmin überprüfen lassen:

Code: Alles auswählen

Warnungen bei den Indizes der Tabelle `adm_members` 
Die Index-Typen INDEX und UNIQUE sollten nicht gleichzeitig für die Spalte `mem_rol_id` gesetzt sein 

Code: Alles auswählen

Warnungen bei den Indizes der Tabelle `adm_role_dependencies` 
Die Index-Typen INDEX und PRIMARY sollten nicht gleichzeitig für die Spalte `rld_rol_id_parent` gesetzt sein 

Code: Alles auswählen

Warnungen bei den Indizes der Tabelle `adm_user_data` 
Die Index-Typen INDEX und UNIQUE sollten nicht gleichzeitig für die Spalte `usd_usr_id` gesetzt sein 
Bis dann

Andree
Benutzeravatar
fasse
Administrator
Beiträge: 6184
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Andree hat geschrieben:
S Q L - E R R O R

CODE: 1005

Can't create table './usr_web235_5/#sql-a95_89081c.frm' (errno: 150)

B A C K T R A C E


FILE: adm_program/system/mysql_class.php
LINE: 77
CALL: DB->db_error()

FILE: adm_install/update.php
LINE: 177
CALL: MySqlDB->query()
Hmm, eine Tabelle kann nicht erstellt werden ?!?
Hast du mal in der Datenbank geschaut, welche Tabellen bereits existieren und welche nicht ?
Andree
Beiträge: 78
Registriert: 18. Jan 2008, 16:00
Wohnort: Celle
Kontaktdaten:

Beitrag von Andree »

fasse hat geschrieben:Hmm, eine Tabelle kann nicht erstellt werden ?!?
Hast du mal in der Datenbank geschaut, welche Tabellen bereits existieren und welche nicht ?
Mhh ... welche sollen denn alles erstellt werden - zusätzlich. Dann könnte ich vielleicht mal schauen wo er Stoppt.
Wie gesagt. ich würde auch anbieten das sich einer vom Admidio-Team sich mit auf meinen Rechner schaltet.
Bis dann

Andree
Antworten