Pim-community-dev: 2.1.8 : Entri duplikat untuk kunci 'searchunique_idx' saat mengimpor produk menggunakan CLI

Dibuat pada 6 Apr 2018  ·  3Komentar  ·  Sumber: akeneo/pim-community-dev

Saat saya mengimpor feed hanya dengan SKU dan kolom gambar di Akeneo menggunakan baris perintah, impor gagal dengan perintah berikut:

[2018-04-06 15:35:24] batch.ERROR: Encountered an error executing the step: 
An exception occurred while executing 'INSERT INTO pim_catalog_completeness 
(ratio, missing_count, required_count, locale_id, channel_id, product_id) VALUES (?, ?, ?, ?, ?, ?)'
with params [100, 0, 1, 39, 1, 4404]:  
SQLSTATE[23000]: Integrity constraint violation: 
1062 Duplicate entry '1-39-4404' for key 'searchunique_idx' [] []

Adakah yang tahu apa yang mungkin menyebabkan masalah ini? Atau bagaimana saya bisa memperbaikinya? Bagian yang aneh adalah bahwa kuncinya menunjukkan bahwa akan ada juga produk dengan ID 4404 di database saya di tabel itu, tetapi tidak ada.

pembaruan: pada pemeriksaan lebih lanjut, saya perhatikan bahwa file yang diunggah oleh klien memiliki beberapa kemunculan SKU yang sama. Mungkinkah ini penyebab masalah ini? Apakah hal-hal ini dilakukan dalam satu transaksi? (yang dapat menjelaskan mengapa saya tidak dapat menemukan ID yang bertabrakan dalam database).

Komentar yang paling membantu

Saya telah mengalami masalah ini dalam 2 skenario.

Data impor duplikat
Saran Anda benar: ketika Anda memiliki beberapa contoh sku yang sama di file impor Anda, Anda mendapatkan kesalahan ini.

Indeks Pencarian Elastis menahan data produk yang dihapus
Kasus lain di mana saya mengalami masalah ini adalah ketika elasticsearch menyimpan catatan produk yang dihapus dalam indeksnya dan entah bagaimana 'memberi makan' skrip kelengkapan yang berjalan setelah mengimpor model produk.
Ini mungkin disebabkan oleh penghapusan model produk setelah itu Akeneo tidak menghapus semua data ES dari varian produk yang mendasarinya, atau karena saya telah menghapus catatan secara manual dari database.
Saya tidak sepenuhnya yakin yang mana dari keduanya yang menyebabkannya, tetapi mungkin ini adalah kasus kedua dan kemudian itu adalah kesalahan saya sendiri.

namun sangat sulit untuk di-debug, karena saya tidak dapat menemukan catatan duplikat produk ini di mana pun di database saya, atau mengimpor file.

Solusinya:
dari commandline, buang semua indeks ES:
bin/console akeneo:elasticsearch:reset-indexes
Kemudian bangun kembali:
bin/console pim:product:index --all
bin/console pim:product-model:index --all

Semua 3 komentar

Saya telah mengalami masalah ini dalam 2 skenario.

Data impor duplikat
Saran Anda benar: ketika Anda memiliki beberapa contoh sku yang sama di file impor Anda, Anda mendapatkan kesalahan ini.

Indeks Pencarian Elastis menahan data produk yang dihapus
Kasus lain di mana saya mengalami masalah ini adalah ketika elasticsearch menyimpan catatan produk yang dihapus dalam indeksnya dan entah bagaimana 'memberi makan' skrip kelengkapan yang berjalan setelah mengimpor model produk.
Ini mungkin disebabkan oleh penghapusan model produk setelah itu Akeneo tidak menghapus semua data ES dari varian produk yang mendasarinya, atau karena saya telah menghapus catatan secara manual dari database.
Saya tidak sepenuhnya yakin yang mana dari keduanya yang menyebabkannya, tetapi mungkin ini adalah kasus kedua dan kemudian itu adalah kesalahan saya sendiri.

namun sangat sulit untuk di-debug, karena saya tidak dapat menemukan catatan duplikat produk ini di mana pun di database saya, atau mengimpor file.

Solusinya:
dari commandline, buang semua indeks ES:
bin/console akeneo:elasticsearch:reset-indexes
Kemudian bangun kembali:
bin/console pim:product:index --all
bin/console pim:product-model:index --all

Punya masalah yang sama. Solusi yang diberikan dari @wigman membantu saya. Terima kasih
Masalah terjadi karena saya menyalin DB dari satu lingkungan ke lingkungan lain, indeksnya pasti tidak sama.

Solusi yang disarankan oleh @wigman hanya berfungsi untuk toko kecil dengan beberapa ribu produk.
Perintah bin/console akeneo:elasticsearch:reset-indexes menghapus semuanya dari indeks dan kemudian Anda harus menunggu beberapa saat hingga data kembali. Jika Anda memiliki 150k+ model produk dan 1kk+ produk, itu bukan pilihan, karena pengindeksan ulang dapat memakan waktu hingga 4 jam.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat