Migration von Magento 1.7.0.2 zu Shopware 4

Liebe Shopware Community Ich stehe seit längerem vor einem gröberen Problem beim Import von Magento zu Shopware. Nachdem ich auf die Datenbank zugreife, alle Felder richtig zuordne und mit dem Import beginne kommt ziemlich schnell nach Import-Start folgende Fehlermeldung: Beim Importieren der Produkte ist ein Fehler aufgetreten Code : 42 Line : 234 File : /home/user69/public\_html/swshop/engine/Library/Zend/Db/Statement/Pdo.php Error : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'mage\_catalog\_product.entity\_id' in 'on clause' Trace : #0 /home/user69/public\_html/swshop/engine/Library/Zend/Db/Statement.php(300): Zend\_Db\_Statement\_Pdo-\>\_execute(Array) #1 /home/user69/public\_html/swshop/engine/Library/Zend/Db/Adapter/Abstract.php(479): Zend\_Db\_Statement-\>execute(Array) #2 /home/user69/public\_html/swshop/engine/Library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend\_Db\_Adapter\_Abstract-\>query('?????SELECT ???...', Array) #3 /home/user69/public\_html/swshop/engine/Library/Enlight/Components/Db/Adapter/Pdo/Mysql.php(75): Zend\_Db\_Adapter\_Pdo\_Abstract-\>query('?????SELECT ???...', Array) #4 /home/user69/public\_html/swshop/engine/Shopware/Plugins/Community/Backend/SwagMigration/Components/Migration/Profile.php(467): Enlight\_Components\_Db\_Adapter\_Pdo\_Mysql-\>query('?????SELECT ???...') #5 /home/user69/public\_html/swshop/engine/Shopware/Plugins/Community/Backend/SwagMigration/Controllers/Backend/SwagMigration.php(1224): Shopware\_Components\_Migration\_Profile-\>queryProducts(0) #6 /home/user69/public\_html/swshop/engine/Shopware/Plugins/Community/Backend/SwagMigration/Controllers/Backend/SwagMigration.php(2173): Shopware\_Controllers\_Backend\_SwagMigration-\>importProducts() #7 /home/user69/public\_html/swshop/engine/Library/Enlight/Controller/Action.php(135): Shopware\_Controllers\_Backend\_SwagMigration-\>importAction() #8 /home/user69/public\_html/swshop/engine/Library/Enlight/Controller/Dispatcher/Default.php(521): Enlight\_Controller\_Action-\>dispatch('importAction') #9 /home/user69/public\_html/swshop/engine/Library/Enlight/Controller/Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #10 /home/user69/public\_html/swshop/engine/Shopware/Bootstrap.php(79): Enlight\_Controller\_Front-\>dispatch() #11 /home/user69/public\_html/swshop/engine/Library/Enlight/Application.php(192): Shopware\_Bootstrap-\>run() #12 /home/user69/public\_html/swshop/shopware.php(74): Enlight\_Application-\>run() #13 {main} Ich importiere alles. Also auch vergangene Bestellungen etc. Kennt einer dieses Problem? Kann mir einer weiterhelfen? Vielen Dank für die Hinweise und Hilfe im Voraus! Liebe Grüsse tillch

Hat wirklich niemand einen Tipp? Ich bin am verzweifeln und um jeden kleinen Hinweis froh. Liebe Grüsse tillch

doublepost. -.-

Ich kenne das Migrationstool von Shopware nicht, aber (falls mage_ dein Datenbank prefix ist), es gibt in Magento keine Tabelle namens catalog_product. Wahrscheinlich ist catalog_product_entity (bzw. bei dir dann mage_catalog_product_entity) gemeint.

1 „Gefällt mir“

Vielen Dank erst mal für die Antwort. Nun, die Fehlermeldung kann ich schon interpretieren. Ich befürchte dass die fehlermeldung damit zusammenhängt dass wir im Magento Store einen sogenannten Flat Catalog verwenden, welcher die Datenbank in einem linearen Format einsetzt um SQL Abfragen zu beschleunigen. Ich kann mir einfach nicht vorstellen dass ich der einzige bin mit diesem Problem? Hat niemand aus Magento importiert, resp. hat niemand aus einem Magento mit ‘Flat Catalog’ zu Shopware migriert? Beste Grüsse tillch

Hallo tillch, mit den Flat-Tabellen sollte das nichts zu tun haben - die benutzt die Migration bei Kategorien auch (wenn ich mich richtig erinnere). Durch die Flat-Tables werden die Entity-Tabellen auch nicht gelöscht - die werden nur zusätzlich angelegt. Von daher halte ich das eigentlich für ausgeschlossen. Das Problem ist, dass die Tabelle “catalog_product” nicht existiert - es gibt nur verschiedene Entity-Tabellen, die so beginnen, aber keine Tabelle, die tatsächlich so heißt. Auf die Schnelle habe ich auch keine Stelle gefunden, wo die Migration diese “falsche” Tabelle benutzt. Bei unseren Test-Migrationen gibt es das Problem auch nicht. Daher würde ich dich um Folgendes bitten: * Ich vermute, dass das Problem beim Artikel-Import auftritt. Kannst du das kurz bestätigen, indem du alles andere abhakst und nur die Artikel importierst? * In der Plugin-Konfiguration von dem Plugin kannst du in der neuen Version den “Debug”-Modus deaktivieren. Dann wird unter /media/temp/migration.log eine Log-Datei geschrieben. Die würde mich interessieren. Die bitte einmal mit Verweis auf diesen Thread an forum@shopware.de schicken. Besten Dank und schönen Gruß, Daniel

1 „Gefällt mir“

Wie ist denn der ganze query? Vielleicht benutzt das Tool catalog_product auch nur als schlecht benannten alias für die eigentliche Tabelle (die ja dann auch evtentuelle und hier konkret vorhandene Tabellenprefixe beachten müsste).

Ich hab mir das Migrationstool jetzt mal runtergeladen, es verwendet catalog_product tatsächlich nur als alias: SELECT catalog\_product.entity\_id as productID, store.store\_id as languageID, name.value as name, NULL as additionaltext, description.value as description\_long, short\_description.value as description, meta\_keyword.value as keywords $custom\_select FROM {$this-\>quoteTable('catalog\_product\_entity', 'catalog\_product')} INNER JOIN {$this-\>quoteTable('core\_store', 'store')} ON store.store\_id!=0 Dabei wird auch das Prefix beachtet, das Problem liegt also doch woanders. Es wäre interessant, was $this->quoteTable() hier zurückgibt!

Hi, wie gesagt: Die Tabelle wird so direkt nicht verwendet. Ich hatte tillch ja um die Debug-Ausgabe gebeten, darin finden sich auch die Queries, wie sie von der Db ausgeführt werden. Auf der Grundlage sollte das schnell zu klären sein. Besten Gruß, Daniel

[quote=“Daniel Nögel”]Hallo tillch, mit den Flat-Tabellen sollte das nichts zu tun haben - die benutzt die Migration bei Kategorien auch (wenn ich mich richtig erinnere). Durch die Flat-Tables werden die Entity-Tabellen auch nicht gelöscht - die werden nur zusätzlich angelegt. Von daher halte ich das eigentlich für ausgeschlossen. Das Problem ist, dass die Tabelle “catalog_product” nicht existiert - es gibt nur verschiedene Entity-Tabellen, die so beginnen, aber keine Tabelle, die tatsächlich so heißt. Auf die Schnelle habe ich auch keine Stelle gefunden, wo die Migration diese “falsche” Tabelle benutzt. Bei unseren Test-Migrationen gibt es das Problem auch nicht. Daher würde ich dich um Folgendes bitten: * Ich vermute, dass das Problem beim Artikel-Import auftritt. Kannst du das kurz bestätigen, indem du alles andere abhakst und nur die Artikel importierst? * In der Plugin-Konfiguration von dem Plugin kannst du in der neuen Version den “Debug”-Modus deaktivieren. Dann wird unter /media/temp/migration.log eine Log-Datei geschrieben. Die würde mich interessieren. Die bitte einmal mit Verweis auf diesen Thread an forum@shopware.de schicken. Besten Dank und schönen Gruß, Daniel[/quote] Hi Daniel! Vielen vielen Dank für die Hilfe. Nun, ich habe einmal alle Haken beim Import für Artikel weggenommen. Also keine Artikel, keine Artikel Eigenschaften, keine Übersetzungen. Als Fehlermeldung erhalte ich dann (bedeutend später: nKategorien, Preise, Configurators und Bilder werden erfolgreich importiert) folgende Fehlermeldung: Beim Importieren der Kunden ist ein Fehler aufgetreten Code : 42 Line : 234 File : /home/brabazon/public\_html/deltalux/engine/Library/Zend/Db/Statement/Pdo.php Error : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'mage\_customer.entity\_id' in 'on clause' Trace : #0 /home/brabazon/public\_html/deltalux/engine/Library/Zend/Db/Statement.php(300): Zend\_Db\_Statement\_Pdo-\>\_execute(Array) #1 /home/brabazon/public\_html/deltalux/engine/Library/Zend/Db/Adapter/Abstract.php(479): Zend\_Db\_Statement-\>execute(Array) #2 /home/brabazon/public\_html/deltalux/engine/Library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend\_Db\_Adapter\_Abstract-\>query('????SELECT ????...', Array) #3 /home/brabazon/public\_html/deltalux/engine/Library/Enlight/Components/Db/Adapter/Pdo/Mysql.php(75): Zend\_Db\_Adapter\_Pdo\_Abstract-\>query('????SELECT ????...', Array) #4 /home/brabazon/public\_html/deltalux/engine/Shopware/Plugins/Community/Backend/SwagMigration/Components/Migration/Profile.php(517): Enlight\_Components\_Db\_Adapter\_Pdo\_Mysql-\>query('????SELECT ????...') #5 /home/brabazon/public\_html/deltalux/engine/Shopware/Plugins/Community/Backend/SwagMigration/Controllers/Backend/SwagMigration.php(1839): Shopware\_Components\_Migration\_Profile-\>queryCustomers(0) #6 /home/brabazon/public\_html/deltalux/engine/Shopware/Plugins/Community/Backend/SwagMigration/Controllers/Backend/SwagMigration.php(2335): Shopware\_Controllers\_Backend\_SwagMigration-\>importCustomers() #7 /home/brabazon/public\_html/deltalux/engine/Library/Enlight/Controller/Action.php(135): Shopware\_Controllers\_Backend\_SwagMigration-\>importAction() #8 /home/brabazon/public\_html/deltalux/engine/Library/Enlight/Controller/Dispatcher/Default.php(521): Enlight\_Controller\_Action-\>dispatch('importAction') #9 /home/brabazon/public\_html/deltalux/engine/Library/Enlight/Controller/Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #10 /home/brabazon/public\_html/deltalux/engine/Shopware/Bootstrap.php(79): Enlight\_Controller\_Front-\>dispatch() #11 /home/brabazon/public\_html/deltalux/engine/Library/Enlight/Application.php(192): Shopware\_Bootstrap-\>run() #12 /home/brabazon/public\_html/deltalux/shopware.php(74): Enlight\_Application-\>run() #13 {main} Die Debug Option habe ich leider nicht gefunden? (Ich bin auf der Version 2.1.3) Liebe Grüsse & vielen vielen Dank tillch

Hi, die Debug-Option findest du im PluginManager, wenn du dort nach “Migration” suchst und auf den Bleistift klickst. Dort musst du dann einen Haken bei “Debug-Ausgabe” setzen. Dann führst du ganz normal eine Migration durch und lässt mir die Datei in /media/temp/migration.log zukommen :). Wenn die Datei nicht angelegt wurde, ggf. nochmal die Verzeichnisrechte checken und korrigieren. Ich kann mir das aber auch auf deinem System ansehen, wenn gewünscht. Dazu benötige ich * Zugangsdaten zum SW-Shop-Backend * Zugangsdaten zu deiner Quell-DB (Nutzer, Passwort, Host, Datenbankname) * Sehr gerne auch Zugangsdaten zu einer PHPMyAdmin-Instanz mit Zugriff auf die Quell-DB. So kann ich mir direkt ansehen, was bei dir da los ist :). Ich würde mir das dann in den nächsten Tagen(!) kurz ansehen. An der Quell-Datenbank nehme ich keine Änderungen vor, über die Shopware-Installation muss ich aber frei verfügen können - nicht, dass ich dir da was weglösche, was du noch brauchst. Die Daten bitte an forum@shopware.de mit Verweis auf diesen Thread. Besten Dank Daniel

Hallo Zusammenn Kurz an die Shopware Community die den Thread verfolgt haben: Ich habe die angeforderten Daten an Daniel von Shopware geschickt. Nächste Woche wird er sich das Problem genauer anschauen und dann werde ich euch hier updaten. Liebe Grüsse tillch

Hi, ich habe mir das Ganze angesehen; mit der angehängten Version konnte ich den Shop von dir, tillch, auf meiner lokalen Maschine komplett importieren (habe nur stichprobenartig rein geschaut). Das Plugin ist noch nicht durch unsere Qualitätssicherung und wird vor dem SCD vermutlich nicht mehr online gehen. Die angehängte Version sollte (wie gesagt) aber erstmal gehen. Nur für die Akten: Das Problem lag schlicht an den Tabellen-Präfixen, Standard-Installationen ohne Präfixe sollten davon also nicht betroffen sein.

1 „Gefällt mir“