Setelah beberapa impor kacau, saya ditinggalkan dengan banyak penulisan ulang URL yang perlu saya hapus.
Saya menjalankan Enterprise 1.13
Ketika saya memiliki masalah ini di komunitas, saya hanya terpotong core_url_rewrite
, dan diindeks ulang.
Namun, di Enterprise, saya perhatikan bahwa ada sejumlah tabel berbeda yang mengontrol penulisan ulang.
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
Apakah saya aman untuk memotong semuanya?
Saya sepenuhnya mengantisipasi seseorang untuk memberi tahu saya bahwa saya seharusnya tidak pernah memotong tabel ini, jadi mohon maaf atas kenaifan sebelumnya.
magento-enterprise
url-rewrite
ee-1.13
JamesAllwood
sumber
sumber
core_url_rewrite
dan berhasil.Jawaban:
Kami berada dalam situasi yang sama dengan Anda James. Setelah banyak menggali, inilah yang saya temukan:
The
core_url_rewrite
tabel sekarang tidak berlaku lagi bukan Magento EE 1,13 sekarang menyimpan penulisan ulang dienterprise_url_rewrite
.Tabel:
enterprise_*_category_rewrite
gunakancatalog_*_entity_url_key
tabel untuk membangun kembali dua tabel penulisan ulang saat Anda menjalankanphp indexer.php --reindex catalog_url_*
Ketika Anda menambahkan 'URL Redirect' di admin Catalog-> URL Redirect untuk URL khusus itu akan ditambahkan ke
enterprise_url_rewrite_redirect
tabel dan bendera untuk Magento bahwa indeks sekarang sudah usang dimasukkan ke dalamenterprise_url_rewrite_redirect_cl
tabel yang ketika menjalankanphp indexer.php --reindex url_redirect
membangun kembalienterprise_url_rewrite_redirect_rewrite
tabel.Catatan cepat, setiap tabel yang diakhiri dengan _cl aman untuk dipotong, 'CL' adalah singkatan dari Change Log dan digunakan oleh Magento untuk memeriksa apakah pengindeksan ulang diperlukan.
Sejauh tabel URL Key pergi, saya masih tidak mengerti mengapa ada dua entri URL Key satu
catalog_*_entity_url_key
dan satu dicatalog_*_entity_varchar
(atribut id 90), tapi saya berasumsi inilah yang terjadi:Ketika Anda membuat produk / kategori baru Magento menggunakan nama untuk menghasilkan url_key yang ditempatkan di
catalog_*_entity_url_key
DAN dicatalog_*_entity_varchar
, tetapi tabel utama yang digunakan oleh Magento adalahcatalog_*_entity_url_key
karena jika Anda memotongnya dan menjalankan tabelphp indexer.php --reindex catalog_url_*
Andaenterprise_*_category_rewrite
akan kosong dan produk / kategori dalam frontend akan menampilkan url jelek yaituhttp://example.com/catalog/product/view/id/123/etc/etc
(tidak ramah SOE) Saya percaya kedua tabel terkait dan digunakan untuk membangunenterprise_url_rewrite
tabel karena tabel ini menyimpan 'request_path' kemungkinan besar url_key di dalamcatalog_*_entity_varchar
tabel dan 'identifier' yang merupakan primary Kunci URL daricatalog_*_entity_url_key
tabel. Saya bisa sepenuhnya salah tentang tabel url_key dan varchar, jadi saya hanya berpikir keras.Pokoknya untuk berhasil memotong dan membangun kembali semua tabel penulisan ulang Anda dapat menjalankan:
lalu jalankan:
Jika Anda juga memotong
enterprise_url_rewrite_redirect
maka Anda akan kehilangan semua pengalihan kustom yang Anda lihat di panel admin Anda, mungkin ini adalah tujuan Anda karena Anda ditinggalkan dengan satu ton URL yang tidak berguna. Selama Anda TIDAK memotong tabel '* _entity_url_key' Anda akan baik-baik saja.Kisah kami sedikit berbeda, karena kami memiliki duplikat Kunci URL dan masalah besar dengan nama produk dari impor excel setelah memutakhirkan menjadi 1,13 dari 1,11 jadi saya menulis skrip cepat ini untuk mengatur ulang
catalog_product_entity_url_key
tabel dan kunci URL serta jalur URL dicatalog_product_entity_varchar
tabel menggunakan produk nama. Saya melampirkan kode di bawah ini, tetapi jika Anda menggunakannya, gunakan dengan risiko Anda sendiri.Kode dapat di-tweak untuk menggunakan metode Magentos formatKey di sini: http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/seo/url_key_characters_conversion sayangnya saya menemukan wiki setelah saya memperbarui semua kunci sehingga saya tidak repot-repot melakukan reupdating semuanya lagi.
Semoga itu bisa membantu :)!
sumber
sudo php indexer.php --reindex catalog_url_catalog
seharusnyasudo php indexer.php --reindex catalog_url_category
.catalog/product/view/id/XXX/category/YYY
. Bisakah Anda mengonfirmasi bahwa ini sama untuk Anda? Saya agak tidak mengerti tentang ini ... Apakah ini bug, atau apakah saya melakukan sesuatu yang salah? Saya mencoba melakukan hal yang sama pada instalasi baru 1.13.0.2, hal yang sama terjadi. Penulisan ulang bekerja dengan baik di frontend, tetapi tidak ada kategori yang ditetapkan.Berdasarkan apa yang saya lihat bermain-main dengan EE 1.13 di lingkungan pengujian dan tes kecil cepat yang baru saja saya lakukan, Anda harus dapat memotong tabel-tabel tersebut dan kemudian secara manual membangun kembali semua indeks URL dari CLI.
Tabel * _cl digunakan dalam PEMICU yang ditemukan di atas
catalog_product_entity_url_key
tabel. Catatan yang mereka masukkan ke dalam tabel * _cl ini adalah apa, saya pikir, digunakan untuk menunjukkan apa yang perlu diindeks ulang setelah disimpan.Inilah yang saya lakukan. Setelah menggunakan alat CLI untuk membangun kembali indeks, semuanya tampak baik untuk dilakukan. Pemotongan MySql ...
Kemudian pada CLI ...
Beri tahu kami hasil Anda ... seperti Marius, saya belum membangun situs EE 1.13 dan hanya memiliki pengalaman bermain-main dengan itu sejak Imagine. :)
sumber
enterprise_url_rewrite
vscore_url_rewrite
seperti sebelumnya. Thecatalog_*_entity_url_key
tabel tampaknya menjadi meja direplikasi dengan url-kunci untuk digunakan oleh pengindeks, dan mereka juga tabel dengan pemicu yang berkaitan dengan penulisan ulang URL.Catatan tentang penggunaan TRUNCATE:
memberikan kesalahan karena referensi kunci asing:
Menjalankan perintah truncate / delete seperti ini akan bekerja:
sumber
SET FOREIGN_KEY_CHECKS = 0;
sebelum AndaTRUNCATE ...
danSET FOREIGN_KEY_CHECKS = 1;
di bagian paling bawah, setelahDELETE FROM ...
Jawaban sederhananya adalah Tidak , tidak aman untuk memotong tabel ini, setidaknya jika Anda tidak tahu konsekuensinya:
Namun:
Catalog -> Url Redirect
akan kosong (pada EE 1.13.1)(yang terlihat seperti bugmenurut Magento ini adalah perilaku yang diharapkan pada 1.13.1) (lihat juga di bawah komentar)sumber
Catalog -> Url Redirect
hanya menunjukkan penulisan ulang non-sistem. Jadi, hanya penulisan ulang kustom Anda yang akan ditampilkan di sini. yaitu baris denganenterprise_url_rewrite.system = 0
.