Fehler bei manuellen Update der DB von 3.5.7 auf 4.0.4

Hallo, da der automatische Updateprozess nicht sauber durchläuft, führe ich ein manuelles Datenbank-Update durch. Bei folgenden Punkt, erhalte ich ständig eine Fehlermeldung und kann leider nicht ergründen, wo genau der Fehler liegt: SQL-Code: CREATE TABLE IF NOT EXISTS `new_s_articles_attributes` ( `id` int(11) NOT NULL AUTO\_INCREMENT, `articleID` int(11) unsigned DEFAULT NULL, `articledetailsID` int(11) unsigned DEFAULT NULL, `attr1` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT '0', `attr2` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT '0', `attr3` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT '0', `attr4` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr5` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr6` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr7` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr8` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT '0', `attr9` mediumtext COLLATE utf8\_unicode\_ci, `attr10` mediumtext COLLATE utf8\_unicode\_ci, `attr11` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr12` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr13` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT '0', `attr14` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr15` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr16` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr17` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr18` mediumtext COLLATE utf8\_unicode\_ci, `attr19` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, `attr20` varchar(255) COLLATE utf8\_unicode\_ci DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `articledetailsID` (`articledetailsID`), KEY `articleID` (`articleID`), CONSTRAINT `s_articles_attributes_ibfk_1` FOREIGN KEY (`articleID`) REFERENCES `s_articles` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `s_articles_attributes_ibfk_2` FOREIGN KEY (`articledetailsID`) REFERENCES `s_articles_details` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8\_unicode\_ci; Fehlermeldung: Can't create table 'db.new\_s\_articles\_attributes' (errno: 150) Vielleicht hat jemand einen identischen Fehler schon gehabt und kann mir bei einem Lösungsansatz helfen! Danke vielmals im Voraus!

Hallo, wenn Du auf der Konsole „perror 150“ eingibst dann bekommst Du den Grund des Fehlers etwas genauer beschrieben. Hier sind es wieder die foreign keys, die nicht korrekt erstellt werden. Es werden am Ende die zwei Tabellen s_articles und s_articles-deatils referenziert, sind die beide mit InnoDB erstellt. Standard nach der mySQL-ini ist es nämlich häufig nicht. Das würde ich als erstes mal ändern. Sonst fällt mir hier auf die Schnelle auch nichts ungewöhnliches im SQL-Statement auf. Viel Erfolg

1 „Gefällt mir“

[quote=“hth”]…, sind die beide mit InnoDB erstellt.[/quote] Die Tabelle s_articles_details war nicht als InnoDB deklariert, nachdem ich die Änderung vorgenommen habe, lief die SQL-Syntax ohne Probleme durch. Jedoch sehe ich hier, dass Problem, bei dem von Shopware angebotenen Update-Skript, da ich genau nach Beschreibung und Reihenfolge von Shopware vorgegangen bin. Danke Dir für Deine Hilfe!

Hallo, habe jetzt das Update ohne Probleme lokal mit dem UwAmp durchgeführt und danach alle Daten inkl. Datenbank auf den Server übertragen. Das dauert zwar länger, ist aber am effektivsten. Update lokal dauert nur wenige Minuten und der Upload sowie die Datenbank Einspielung so ca. 18 Stunden, wobei das abhängig ist, von der Anzahl der Produkte/Produktbilder etc.

Das Thema ist zwar schon ein paar Tage alt, aber ich hatte heute das gleiche Problem. Die Änderungen an den Tabellen waren einfach in der falschen Reihenfolge in der Datei 0-start.sql. Ich habe die Anweisung CREATE TABLE IF NOT EXISTS `new_s_articles_details`... vor die Anweisung CREATE TABLE IF NOT EXISTS `new_s_articles_attributes` gestellt. Damit war dann die Referenztabelle schon auf InnoDB umgestellt und der foreign key konnte erstellt werden. Gruß