Error beim Update auf 0.9.9
-
Führ mal bitte folgendes SQL Statement in deiner 0.9.8-x aus:
SHOW CREATE TABLE isys_catp_ip_list;
und zeig uns die Ausgabe
-
Ausgabe:
isys_catp_ip_list CREATE TABLE
isys_catp_ip_list
(
isys_catp_ip_list__id
int(10) unsigned NOT NULL auto_increment,
isys_catp_ip_list__isys_ip_assignment__id
int(10) unsigned default NULL,
isys_catp_ip_list__isys_catp_ip__id
int(10) unsigned NOT NULL default '0',
isys_catp_ip_list__title
varchar(255) collate utf8_unicode_ci default NULL,
isys_catp_ip_list__description
text collate utf8_unicode_ci,
isys_catp_ip_list__status
int(10) unsigned default '1',
isys_catp_ip_list__property
int(10) unsigned default '0',
isys_catp_ip_list__hostname
varchar(255) collate utf8_unicode_ci default NULL,
isys_catp_ip_list__dhcp
int(10) unsigned default '0',
isys_catp_ip_list__address
varchar(255) collate utf8_unicode_ci default NULL,
isys_catp_ip_list__mask
varchar(255) collate utf8_unicode_ci default NULL,
isys_catp_ip_list__primary
int(10) unsigned default NULL,
isys_catp_ip_list__gateway
varchar(255) collate utf8_unicode_ci default NULL,
isys_catp_ip_list__dns_domain
varchar(255) collate utf8_unicode_ci default NULL,
isys_catp_ip_list__dns_server
varchar(255) collate utf8_unicode_ci default NULL,
isys_catp_ip_list__active
int(10) unsigned default NULL,
PRIMARY KEY (isys_catp_ip_list__id
),
KEYisys_catp_ip_list_FKIndex1
(isys_catp_ip_list__isys_catp_ip__id
),
KEYisys_catp_ip_list_FKIndex2
(isys_catp_ip_list__isys_ip_assignment__id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci -
Führ mal das hier aus:
ALTER TABLE
isys_catp_ip_list
ADD CONSTRAINTisys_catp_ip_list_ibfk_1
FOREIGN KEY (isys_catp_ip_list__isys_catp_ip__id
) REFERENCESisys_catp_ip
(isys_catp_ip__id
) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD CONSTRAINTisys_catp_ip_list_ibfk_2
FOREIGN KEY (isys_catp_ip_list__isys_ip_assignment__id
) REFERENCESisys_ip_assignment
(isys_ip_assignment__id
) ON DELETE NO ACTION ON UPDATE NO ACTION;Und starte das Update erneut
-
Nun erhalte ich folgenden Fehler:
isys_exception_database : Query error: 'RENAME TABLE isys_ls_language TO isys_language': Table 'isys_language' already exists Backtrace: #0 _get_backtrace() called at [/srv/www/htdocs/idoit/src/classes/exceptions/isys_exception_database.class.php:24] #1 isys_exception_database->__construct(Query error: 'RENAME TABLE isys_ls_language TO isys_language': Table 'isys_language' already exists, Array ([server] => 5.0.67,[host] => Localhost via UNIX socket,[client] => 5.0.67,[proto] => 10)) called at [/srv/www/htdocs/idoit/src/classes/components/isys_component_database.class.php:182] #2 isys_component_database->query(RENAME TABLE isys_ls_language TO isys_language) called at [/srv/www/htdocs/idoit/src/classes/components/isys_component_dao.class.php:253] #3 isys_component_dao->update(RENAME TABLE isys_ls_language TO isys_language) called at [/srv/www/htdocs/idoit/updates/classes/isys_update.class.php:1003] #4 isys_update->update_database(/srv/www/htdocs/idoit/updates/versions/v0.9.9/update_sys.xml, isys_component_database Object ([] => idoit_system,[] => Resource id #11,[] => isys_component_database_transaction_manager Object ([] => isys_component_database Object ( RECURSION,[] => 1),[] => root,[] => PW,[] => localhost,[] => 3306), 1) called at [/srv/www/htdocs/idoit/updates/classes/isys_update.class.php:211] #5 isys_update->update(idoit_system, Array ([9] => idoit_mandant)) called at [/srv/www/htdocs/idoit/updates/update.inc.php:451] #6 include_once(/srv/www/htdocs/idoit/updates/update.inc.php) called at [/srv/www/htdocs/idoit/index.php:278] (Extended Information: array ( 'server' => '5.0.67', 'host' => 'Localhost via UNIX socket', 'client' => '5.0.67', 'proto' => 10, ))
-
Du hast beim zurückspielen der Datenbank sicher einfach nur importiert anstatt die kaputte DB zu löschen oder ?
-
Ja da hast du recht habe eben die Datenbank nochmal komplett gelöscht und anschließend den Befehl von oben ausgeführt.
Nun erhalte ich folgenden Fehler beim Update:
isys_exception_database : Query error: 'ALTER TABLE
isys_dependency
DROP FOREIGN KEYisys_dependency_ibfk_1
': Error on rename of './idoit_mandant/isys_dependency' to './idoit_mandant/#sql2-9d9-66c' (errno: 152) Backtrace: #0 _get_backtrace() called at [/srv/www/htdocs/idoit/src/classes/exceptions/isys_exception_database.class.php:24] #1 isys_exception_database->__construct(Query error: 'ALTER TABLEisys_dependency
DROP FOREIGN KEYisys_dependency_ibfk_1
': Error on rename of './idoit_mandant/isys_dependency' to './idoit_mandant/#sql2-9d9-66c' (errno: 152), Array ([server] => 5.0.67,[host] => Localhost via UNIX socket,[client] => 5.0.67,[proto] => 10)) called at [/srv/www/htdocs/idoit/src/classes/components/isys_component_database.class.php:182] #2 isys_component_database->query(ALTER TABLEisys_dependency
DROP FOREIGN KEYisys_dependency_ibfk_1
) called at [/srv/www/htdocs/idoit/src/classes/components/isys_component_dao.class.php:253] #3 isys_component_dao->update(ALTER TABLEisys_dependency
DROP FOREIGN KEYisys_dependency_ibfk_1
) called at [/srv/www/htdocs/idoit/updates/classes/isys_update.class.php:1003] #4 isys_update->update_database(/srv/www/htdocs/idoit/updates/versions/v0.9.9/update_data.xml, isys_component_database Object ([] => idoit_mandant,[] => Resource id #96,[] => isys_component_database_transaction_manager Object ([] => isys_component_database Object ( RECURSION,[] => 1),[] => root,[] => PW,[] => localhost,[] => 3306), 1) called at [/srv/www/htdocs/idoit/updates/classes/isys_update.class.php:245] #5 isys_update->update(idoit_system, Array ([9] => idoit_mandant)) called at [/srv/www/htdocs/idoit/updates/update.inc.php:451] #6 include_once(/srv/www/htdocs/idoit/updates/update.inc.php) called at [/srv/www/htdocs/idoit/index.php:278] (Extended Information: array ( 'server' => '5.0.67', 'host' => 'Localhost via UNIX socket', 'client' => '5.0.67', 'proto' => 10, ))Schade das es diesmal Probleme bereitet
-
Kann es sein, dass Du auf keiner einzigen Tabellen eine Foreign Key definiert hast?
Ich frage mich gerade, woran das liegen mag, welcher MySQL-Version setzt Du ein?
-
Moin hier erstmal einige Informationen zum Server:
PHP Version 5.2.11
MySQL Version 5.0.67i-doit ist im Einsatz seit Version 0.9.1
Habe das mal in der Datenbank überprüft und es ist in der tat so das bei isys_dependency ebenfalls kein FOREIGN KEY hinterlegt ist …
An sich sind die Updates bisher ja immer gut gelaufen ... -
Habe nun die FOREIGN KEYs für isys_dependency eingelesen.
Nun bekomme ich den Fehler das die für isys_file_version fehlen.isys_exception_database : Query error: 'ALTER TABLE
isys_file_version
DROP FOREIGN KEYisys_file_version_ibfk_2
': Error on rename of './idoit_mandant/isys_file_version' to './idoit_mandant/#sql2-ae6-7b' (errno: 152) Backtrace: #0 _get_backtrace() called at [/srv/www/htdocs/idoit/src/classes/exceptions/isys_exception_database.class.php:24] #1 isys_exception_database->__construct(Query error: 'ALTER TABLEisys_file_version
DROP FOREIGN KEYisys_file_version_ibfk_2
': Error on rename of './idoit_mandant/isys_file_version' to './idoit_mandant/#sql2-ae6-7b' (errno: 152), Array ([server] => 5.0.67,[host] => Localhost via UNIX socket,[client] => 5.0.67,[proto] => 10)) called at [/srv/www/htdocs/idoit/src/classes/components/isys_component_database.class.php:182] #2 isys_component_database->query(ALTER TABLEisys_file_version
DROP FOREIGN KEYisys_file_version_ibfk_2
) called at [/srv/www/htdocs/idoit/src/classes/components/isys_component_dao.class.php:253] #3 isys_component_dao->update(ALTER TABLEisys_file_version
DROP FOREIGN KEYisys_file_version_ibfk_2
) called at [/srv/www/htdocs/idoit/updates/classes/isys_update.class.php:1003] #4 isys_update->update_database(/srv/www/htdocs/idoit/updates/versions/v0.9.9/update_data.xml, isys_component_database Object ([] => idoit_mandant,[] => Resource id #96,[] => isys_component_database_transaction_manager Object ([] => isys_component_database Object ( RECURSION,[] => 1),[] => root,[] => PW,[] => localhost,[] => 3306), 1) called at [/srv/www/htdocs/idoit/updates/classes/isys_update.class.php:245] #5 isys_update->update(idoit_system, Array ([9] => idoit_mandant)) called at [/srv/www/htdocs/idoit/updates/update.inc.php:451] #6 include_once(/srv/www/htdocs/idoit/updates/update.inc.php) called at [/srv/www/htdocs/idoit/index.php:278] (Extended Information: array ( 'server' => '5.0.67', 'host' => 'Localhost via UNIX socket', 'client' => '5.0.67', 'proto' => 10, ))Wenn ich jedoch nun den Befehl zu einlesen der FOREIGN KEYs für diese Tabelle ausführe erhalte ich folgende Meldung:
ALTER TABLE
isys_file_version
ADD CONSTRAINTisys_file_version_ibfk_2
FOREIGN KEY (isys_file_version__isys_obj__id
) REFERENCESisys_obj
(isys_obj__id
) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINTisys_file_version_ibfk_1
FOREIGN KEY (isys_file_version__isys_file_physical__id
) REFERENCESisys_file_physical
(isys_file_physical__id
) ON DELETE NO ACTION ON UPDATE NO ACTION;Fehler:
#1452 - Cannot add or update a child row: a foreign key constraint fails (
idoit_mandant/#sql-ae6_a6
, CONSTRAINTisys_file_version_ibfk_2
FOREIGN KEY (isys_file_version__isys_obj__id
) REFERENCESisys_obj
(isys_obj__id
) ON DELETE CASCADE ON UPDATE CASCADE) -
Hmm,
also den Grund dafür, dass bei Dir anscheinend kein einziger Foreign Key definiert ist, kann man aus der Ferne schlecht abschätzen.Hat mal eine Migration von MyISAM auf InnoDB oder von MySQL4 auf MySQL5 stattgefunden? Könnte ja sein, wenn Du i-doit schon seit v0.9.1 einsetzt.
Schau' doch mal nach, ob es auf irgendeiner Tabelle überhaupt einen Foreign Key gibt.
-
Also in den Tabelle isys_dependency, isysgui_catg, isys_contact, isys_obj sind keine FOREIGN KEYs definiert
Kann mir ehrlich gesagt nicht erklären wie das passieren konnte … Es hat jedenfalls bisher noch keine Migration von MyISAM auf InnoDB stattgefunden. Auch ein Umstieg von MySQL v4 auf v5 hat nicht stattgefunden v5 wird bereits seit Anfang an eingesetzt.Hoffentlich lässt sich das ganze noch retten hab schon 300 Objekte eingetragen ... Und die Lizenz Verwaltung über i-doit kommt auch immer mehr ins rollen.
Vielen Dank schon mal für den tollen Support den man von euch bei echt jedem Problem bekommt -
Also was du mal versuchen könntest (Kann aber vielleicht aufgrund der bisher nicht gesetzten foreign keys schief gehen :() ist, in einer Testumgebung eine frische 0.9.8-3 installieren. Danach nur die "DATEN" in die 0.9.8-3 importieren (Exportieren zB mit phpMyAdmin und REPLACE INTO wählen). Und dann darauf das 0.9.9 update nochmal machen.
Ist nur ne Idee, ich weiss nicht so genau ob das replacen funktioniert -
Du meinst also unter PHPmyAdmin Export dort nur Daten und unten REPLACE auswählen.
Anschließend über die neue Datenbank importieren.
oder? -
Genau, also über die neue frische Mandanten Datenbank der 0.9.8-3
-
Erhalte beim Import folgenden Fehler
Error
SQL query:
REPLACE INTO isys_catd_distributor (isys_catd_distributor__id, isys_catd_distributor__isys_obj__id, isys_catd_distributor__isys_catd_dns__id, isys_catd_distributor__isys_catd_sanpool__id, isys_catd_distributor__isys_catd_drive__id, isys_catd_distributor__isys_catd_version__id) VALUES (1, 2, 1, 1, 1, 1), (2, 3, 2, 2, 2, 2), (3, 4, 3, 3, 3, 3), (4, 5, 4, 4, 4, 4), (5, 6, 5, 5, 5, 5), (6, 7, 6, 6, 6, 6), (7, 8, 7, 7, 7, 7), (8, 9, 8, 8, 8, 8), (9, 10, 9, 9, 9, 9), (10, 11, 10, 10, 10, 10), (11, 12, 11, 11, 11, 11), (12, 13, 12, 12, 12, 12), (13, 14, 13, 13, 13, 13), (14, 15, 14, 14, 14, 14), (15, 16, 15, 15, 15, 15), (16, 17, 16, 16, 16, 16), (17, 18, 17, 17, 17, 17), (18, 19, 18, 18, 18, 18), (19, 20, 19, 19, 19, 19), (20, 21, 20, 20, 20, 20), (21, 22, 21, 21, 21, 21), (22, 23, 22, 22, 22, 22), (23, 24, 23, 23, 23, 23), (24, 25, 24, 24, 24, 24), (25, 26, 25, 25, 25, 25), (26, 27, 26, 26, 26, 26), (27, 28, 27, 27, 27, 27), (28, 29, 28, 28, 28, 28), (29, 30, 29, 29, 29, 29), (30, 31, 30[…]
MySQL said: Documentation
#1452 - Cannot add or update a child row: a foreign key constraint fails (idoit_data02/isys_catd_distributor
, CONSTRAINTisys_catd_distributor_ibfk_1
FOREIGN KEY (isys_catd_distributor__isys_catd_version__id
) REFERENCESisys_catd_version
(`isys_catd_version_) -
Ok hatte ich mir fast gedacht.. Das geht dann so nicht
Was du aber noch versuchen kannst ist bei dem Replace Export vom PHPMyAdmin die Fremdschlüsselüberprüfung zu deaktivieren. Vielleicht funktionierts dann
-
Ok der Datenimport hat nun geklappt werde nun ein Update fahren und dann das Test System auf Live System umstellen.
Danke erstmal
-
Hey cool :-):-):-):-):-):-)
-
Also folgende neue Probleme haben sich ergeben.
Die Suchfunktion liefert keine Ordentlich Ergebnisse … Suche ich nach Mueller erhalte ich keiner Ergebnisse obwohl Objekte gibt welchen der Kontak Mueller zugewiesen ist.
Zudem werden unter Moduel sämtliche Module doppelt aufgelistet.
Und in der Kategorie Clients ist ebenfalls im Menü links jeder Eintrag doppelt.Ansonsten hat es beim Umstieg auf Version 0.9.9 keine weiteren Probleme gegeben.
-
Oh ich glaube das Replace into hat bei den Modulen nicht so ganz funktioniert. Versuch mal im phpmyadmin in der Tabelle isys_module alle neuen doppelten Module zu entfernen und danach am besten cache im temp/ Ordner löschen
Achso in Tabelle isysgui_catg und isysgui_cats müsstest du das Ganze dann auch machen