Nach mehreren durcheinandergebrachten Importen habe ich eine Menge URL-Änderungen hinterlassen, die ich entfernen muss.
Ich verwende Enterprise 1.13
Wenn ich dieses Problem in der Community hatte, habe ich einfach abgeschnitten core_url_rewrite
und das neu indiziert.
In Enterprise stelle ich jedoch fest, dass es eine Reihe verschiedener Tabellen gibt, die das Umschreiben steuern.
enterprise_url_rewrite
enterprise_url_rewrite_category_cl
enterprise_url_rewrite_product_cl
enterprise_url_rewrite_redirect
enterprise_url_rewrite_redirect_cl
enterprise_url_rewrite_redirect_rewrite
Bin ich sicher, sie alle abzuschneiden?
Ich erwarte voll und ganz, dass mir jemand sagt, ich solle diese Tabellen niemals kürzen, also entschuldige mich im Voraus für die Naivität.
magento-enterprise
url-rewrite
ee-1.13
JamesAllwood
quelle
quelle
core_url_rewrite
und es hat funktioniert.Antworten:
Wir sind in einer ähnlichen Situation wie du, James. Nach vielem Graben habe ich mir Folgendes ausgedacht:
Die
core_url_rewrite
Tabelle ist jetzt veraltet, stattdessen speichert Magento EE 1.13 jetzt die Umschreibungen inenterprise_url_rewrite
.Tabellen:
enterprise_*_category_rewrite
Verwenden Siecatalog_*_entity_url_key
Tabellen, um die beiden Umschreibtabellen bei der Ausführung neu zu erstellenphp indexer.php --reindex catalog_url_*
Wenn Sie in admin Catalog-> URL Redirects eine 'URL Redirect' für eine benutzerdefinierte URL hinzufügen, wird diese zur
enterprise_url_rewrite_redirect
Tabelle hinzugefügt und das Flag für Magento, dass der Index jetzt veraltet ist, wird in dieenterprise_url_rewrite_redirect_cl
Tabelle eingegeben, die beim Ausführenphp indexer.php --reindex url_redirect
dieenterprise_url_rewrite_redirect_rewrite
Tabelle neu erstellt.Kurz gesagt, jede Tabelle, die mit _cl endet, kann sicher abgeschnitten werden. 'CL' steht für Change Log (Änderungsprotokoll) und wird von Magento verwendet, um zu überprüfen, ob eine Neuindizierung erforderlich ist.
Was die URL Key Tabellen gehen, ich bin immer noch ein bisschen ratlos, warum es zwei URL Schlüsseleinträge einen in
catalog_*_entity_url_key
und einen incatalog_*_entity_varchar
(Attribut - ID 90), aber ich nehme an, das ist , was passiert:Wenn Sie ein neues Produkt / eine neue Kategorie erstellen, verwendet Magento den Namen, um einen url_key zu generieren, der in
catalog_*_entity_url_key
AND in platziertcatalog_*_entity_varchar
wird. Die von Magento verwendete Primärtabelle ist jedoch die,catalog_*_entity_url_key
daphp indexer.php --reindex catalog_url_*
Ihreenterprise_*_category_rewrite
Tabellen leer sind und Produkte / Kategorien in leer sind, wenn Sie sie abschneiden und ausführen Das Frontend zeigt hässliche URLs an, dhhttp://example.com/catalog/product/view/id/123/etc/etc
(nicht SOE-freundlich) Ich glaube, die beiden Tabellen sind miteinander verwandt und werden zum Erstellen derenterprise_url_rewrite
Tabelle verwendet, da in dieser Tabelle ein 'request_path' gespeichert ist, höchstwahrscheinlich der url_key in dercatalog_*_entity_varchar
Tabelle und ein 'identifier', der der primäre ist URL-Schlüssel aus dercatalog_*_entity_url_key
Tabelle. Ich könnte mich bei url_key- und varchar-Tabellen völlig irren, also denke ich nur laut nach.Wie auch immer, um alle Umschreibtabellen erfolgreich abzuschneiden und neu zu erstellen, können Sie Folgendes ausführen:
und dann laufen:
Wenn Sie auch kürzen
enterprise_url_rewrite_redirect
, verlieren Sie alle benutzerdefinierten Weiterleitungen, die Sie in Ihrem Admin-Bereich sehen. Vielleicht ist dies Ihr Ziel, da Sie eine Menge nutzloser URLs hinterlassen haben. Solange Sie die Tabellen '* _entity_url_key' NICHT abschneiden, ist alles in Ordnung.Unsere Geschichte war etwas anders, da wir nach dem Upgrade von 1.11 auf 1.13 doppelte URL-Schlüssel und größere Probleme mit Produktnamen hatten. Deshalb habe ich dieses schnelle Skript geschrieben, um die
catalog_product_entity_url_key
Tabelle und die URL-Schlüssel und URL-Pfade in dercatalog_product_entity_varchar
Tabelle mit product zurückzusetzen Namen. Ich habe den folgenden Code angehängt, aber wenn Sie ihn verwenden, verwenden Sie ihn auf eigenes Risiko.Der Code kann so angepasst werden, dass die Magentos-FormatKey-Methode hier verwendet wird: http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/seo/url_key_characters_conversion Leider bin ich auf das Wiki gestoßen, nachdem ich alle Schlüssel aktualisiert habe, sodass ich mich nicht darum gekümmert habe, sie zu aktualisieren alles wieder.
Hoffentlich hilft das :)!
quelle
sudo php indexer.php --reindex catalog_url_catalog
sollte seinsudo php indexer.php --reindex catalog_url_category
.catalog/product/view/id/XXX/category/YYY
. Können Sie bitte bestätigen, dass dies für Sie dasselbe ist? Ich bin ein bisschen ahnungslos ... Ist es ein Fehler oder mache ich etwas falsch? Ich habe versucht, dasselbe bei einer Neuinstallation von 1.13.0.2 zu tun, dasselbe geschah. Rewrites funktioniert im Frontend, aber es ist keine Kategorie festgelegt.Basierend auf dem, was ich in einer Testumgebung mit EE 1.13 gesehen habe, und ein paar kurzen Tests, die ich gerade durchgeführt habe, sollten Sie in der Lage sein, diese Tabellen einfach abzuschneiden und dann alle URL-Indizes von der CLI aus manuell neu zu erstellen.
Die * _cl-Tabellen werden in den in der Tabelle gefundenen TRIGGERS verwendet
catalog_product_entity_url_key
. Die Datensätze, die sie in diese * _cl-Tabelle einfügen, werden meiner Meinung nach verwendet, um anzugeben, was nach dem Speichern neu indiziert werden muss.Hier ist was ich getan habe. Nachdem die Indizes mit dem CLI-Tool neu erstellt wurden, schien alles in Ordnung zu sein. MySQL-Kürzung…
Dann auf der CLI…
Teilen Sie uns Ihre Ergebnisse mit ... wie Marius habe ich noch keine EE 1.13-Site erstellt und seit Imagine nur die Erfahrung aus dem Herumspielen damit. :)
quelle
enterprise_url_rewrite
vs gespeichert sind,core_url_rewrite
wie sie vorher waren. Diecatalog_*_entity_url_key
Tabellen scheinen eine replizierte Tabelle mit den URL-Schlüsseln zu sein, die vom Indexer verwendet werden, und sie sind auch die Tabellen mit den Auslösern, die sich auf die URL-Neuschreibungen beziehen.Ein Hinweis zur Verwendung von TRUNCATE:
gibt einen Fehler wegen Fremdschlüsselreferenzen aus:
Das Ausführen von Kürzungs- / Löschbefehlen funktioniert folgendermaßen:
quelle
SET FOREIGN_KEY_CHECKS = 0;
vorTRUNCATE ...
undSET FOREIGN_KEY_CHECKS = 1;
ganz unten, nachDELETE FROM ...
Die einfache Antwort lautet: Nein, es ist nicht sicher, diese Tabellen abzuschneiden, zumindest wenn Sie die Konsequenz nicht kennen:
Jedoch:
Catalog -> Url Redirect
wird leer sein (in EE 1.13.1)(das sieht aus wie ein Bugin Magento, dies ist das erwartete Verhalten in 1.13.1) (siehe auch Kommentar unten)quelle
Catalog -> Url Redirect
nur Nicht-System-Umschreibungen angezeigt werden. Daher werden hier nur Ihre benutzerdefinierten Änderungen angezeigt. dh Zeilen mitenterprise_url_rewrite.system = 0
.