Error beim Update auf 0.9.9



  • Servus,
    wollte eben auf 0.9.9 umstellen und habe nach dem klick auf "Yes I did it - Start Update now" folgende Fehlermeldung:

    isys_exception_database : Query error: 'ALTER TABLE isys_catp_ip_list DROP FOREIGN KEY isys_catp_ip_list_ibfk_2': Error on rename of './idoit_mandant/isys_catp_ip_list' to './idoit_mandant/#sql2-9d9-5c8' (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 TABLE isys_catp_ip_list DROP FOREIGN KEY isys_catp_ip_list_ibfk_2': Error on rename of './idoit_mandant/isys_catp_ip_list' to './idoit_mandant/#sql2-9d9-5c8' (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 TABLE isys_catp_ip_list DROP FOREIGN KEY isys_catp_ip_list_ibfk_2) called at [/srv/www/htdocs/idoit/src/classes/components/isys_component_dao.class.php:253] #3 isys_component_dao->update(ALTER TABLE isys_catp_ip_list DROP FOREIGN KEY isys_catp_ip_list_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, ))



  • 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),
    KEY isys_catp_ip_list_FKIndex1 (isys_catp_ip_list__isys_catp_ip__id),
    KEY isys_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 CONSTRAINT isys_catp_ip_list_ibfk_1 FOREIGN KEY (isys_catp_ip_list__isys_catp_ip__id) REFERENCES isys_catp_ip (isys_catp_ip__id) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT isys_catp_ip_list_ibfk_2 FOREIGN KEY (isys_catp_ip_list__isys_ip_assignment__id) REFERENCES isys_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 KEY isys_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 TABLE isys_dependency DROP FOREIGN KEY isys_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 TABLE isys_dependency DROP FOREIGN KEY isys_dependency_ibfk_1) called at [/srv/www/htdocs/idoit/src/classes/components/isys_component_dao.class.php:253] #3 isys_component_dao->update(ALTER TABLE isys_dependency DROP FOREIGN KEY isys_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.67

    i-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 KEY isys_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 TABLE isys_file_version DROP FOREIGN KEY isys_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 TABLE isys_file_version DROP FOREIGN KEY isys_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 TABLE isys_file_version DROP FOREIGN KEY isys_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 CONSTRAINT isys_file_version_ibfk_2 FOREIGN KEY (isys_file_version__isys_obj__id) REFERENCES isys_obj (isys_obj__id) ON DELETE CASCADE ON UPDATE CASCADE,
    ADD CONSTRAINT isys_file_version_ibfk_1 FOREIGN KEY (isys_file_version__isys_file_physical__id) REFERENCES isys_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, CONSTRAINT isys_file_version_ibfk_2 FOREIGN KEY (isys_file_version__isys_obj__id) REFERENCES isys_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, CONSTRAINT isys_catd_distributor_ibfk_1 FOREIGN KEY (isys_catd_distributor__isys_catd_version__id) REFERENCES isys_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.

    idoit099_auswahldoppelt.png
    idoit099_moduledoppelt.png


 


Datenschutz / Privacy Policy