Saya telah berhasil memigrasi katalog dari Magento 1.9.2.3 ke Magento 2.0.2. Setelah migrasi, saya melakukan pengindeksan ulang menggunakan perintah php bin/magento indexer:reindex
.
Semua berhasil diindeks ulang, kecuali indeks catalog_category_product
dan catalog_product_category
, kembali No such entity.
di shell dan pemberitahuan Reindex Required
di admin. Saya sudah memeriksa var/log/
tetapi tidak ada kesalahan.
Akibatnya, produk ditambahkan ke kategori di backend tetapi kategori muncul kosong di frontend.
Apa yang mungkin menyebabkan masalah ini? Bagaimana saya bisa men-debug?
magento2
reindex
magento-2.0
migration
Gerard de Visser
sumber
sumber
Jawaban:
Selain Raphael:
Saya mendebug kode ini dengan mengubah konstruktor pengecualian untuk tujuan debug (baik dengan xdebug atau dump lama). Ubah konstruk pengecualian untuk saat ini (file tersebut
\lib\internal\Magento\Framework\Exception\NoSuchEntityException.php
)Setelah itu naik satu tumpukan dan periksa argumen yang diberikan (args juga tersedia di debug backtrace, tetapi membuang objek magento tidak benar-benar ramah browser).
Datang pada kesimpulan, bahwa itu adalah di
storeGroupRepository
mana ia tidak dapat menemukan id grup. Masuk ke tabel toko dan melihat beberapa baris di tabel toko yang mereferensikanstore_group
yang tidak ada distore_group
tabel (grup toko tidak ada di tabel yang relevan).Menghapus garis toko yang salah dan kesalahan telah hilang sejak saat itu.
Tapi, perlu diingat bahwa bisa juga di tabel berbeda / alasan lain. misalnya situs web, simpan sendiri atau simpan grup dalam hal ini. Sehingga selalu ada sedikit pencarian yang harus Anda lakukan sendiri.
Juga menemukan bahwa ada cukup banyak referensi ke toko-toko ini dan juga menghapusnya secara manual di db. Ini bisa menjadi pekerjaan yang membosankan tetapi akan menyelesaikan masalah.
Dan jangan lupa untuk menghapus retas Anda.
sumber
Tidak yakin apakah ini terlambat untuk ditambahkan, tetapi ketika saya memilikinya, ini tampaknya disebabkan oleh beberapa id entitas yang perlu diatur ke 0.
Skrip ini berfungsi untuk saya:
Semoga ini bisa membantu.
sumber
Oke, jadi
No such entity.
pesan kesalahannya berasal\lib\internal\Magento\Framework\Exception\NoSuchEntityException.php
.Kelas ini adalah kelas pengecualian khusus Magento dan banyak digunakan di Magento 2.
Setiap kali Anda melihat kode seperti:
Atau
Kelas ini sedang digunakan.
Masalah dalam kasus Anda adalah sulit untuk mencari tahu dari mana pengecualian itu dilemparkan.
Jadi untuk mempersempitnya, Anda dapat mulai men-debug dua kelas yang terkait dengan indeks Anda yang gagal:
Magento\Catalog\Model\Indexer\Category\Product
=> catalog_category_product indexMagento\Catalog\Model\Indexer\Product\Category
=> catalog_product_category indeksUntungnya, yang kedua memperpanjang yang pertama sehingga Anda punya satu titik awal.
Anda harus ingat bahwa setiap kelas pengindeks ini menggunakan kelas baris tindakan untuk memproses pengindeksan ulang:
Magento\Catalog\Model\Indexer\Product\Category\Action\Rows
Magento\Catalog\Model\Indexer\Category\Product\Action\Rows
Bagi saya di situlah Anda harus mulai men-debug karena kelas-kelas aksi baris adalah kelas langsung yang mengindeks ulang dua indeks.
Saya sangat berharap ini akan membantu Anda menemukan masalah Anda.
sumber
INI BEKERJA BAGI SAYA SETELAH MENCOBA SEGALA SESUATU.
Dengan asumsi situs Anda masuk
Developer Mode
, Anda dapat mengubahnya keProduction Mode
dan menghapus / membersihkan cache dan kemudian beralih kembali keDeveloper Mode
.Saya punya masalah ini di ujung depan, karena saya baru-baru ini memindahkan database dari satu server ke yang lain. Saya telah berhasil menyelesaikannya dengan cara ini.
HARAPAN BANTUAN INI BEBERAPA SATU.
sumber
Pada dasarnya sama
Magento 2 - Situs pindahan - 'Tidak ada entitas seperti itu'
cd /magento-root-path/var
rm -rf *
cd ../
php bin/magento setup:upgrade
rm -rf ./var/di
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
chown -R www-data
.sumber
Kesalahan ini, dalam kasus saya, adalah untuk penyiapan multi-store, multi-domain. Magento memotong kode toko. Jika Anda memetakan domain untuk menyimpan kode, pastikan kode toko cocok dengan rute yang ditentukan dalam index.php (atau di mana pun Anda memetakan). Di admin periksa di "Toko" > " Semua Toko ." Periksa situs web Anda, toko & toko melihat kode toko.
Begitu saya menyadari Magento memotong kode toko yang saya masukkan dan membuat penyesuaian yang sama dalam pemetaan & semuanya mulai bekerja lagi.
sumber