Magento error : Item (Mage_Eav_Model_Entity_Attribute_Option) with the same id “22” already exist

Als je per toeval met MagMi zou aan het werken zijn, en je krijgt volgende error “Item (Mage_Eav_Model_Entity_Attribute_Option) with the same id “” already exist” na een csv import, dan zit er in een database een duplicate ID van een bepaald item.

Typisch is dan ook dat de indexatie van de “category search” dan niet meer werkt, en je website meestal ook niet meer 🙂

Het volgende is een oplossing die voor mij werkte :

(always make a backup of your database first !!!!!)

1. Copy the number from the error msg ( ex: Item (Mage_Eav_Model_Entity_Attribute_Option) with the same id “721” already exist )
2. Go to PhpAdmin , choose your database and click Search on top. Paste or write the number. Choose “eav_attribute_option_value” from “Inside table(s):” and click GO.
3. Click Browse from the search result. If you see 2 rows which have the same option_id , delete the second one.
(meer uitleg hieronder, oa ook met multistore !!)

Vrij vertaald :
0. MAAK EEN DUMP VAN JE DATABASE !
1. Noteer het nummer dat in de foutboodschap staat (in mijn geval “22”)
2. Ga naar PHPAdmin, kies uw magenta database en zoek rechts boven naar “Search”. Klik erop en je krijgt een nieuw scherm. Voer het nummer in (zonder de quotes er rond). Eronder zie je de lijst van tabellen staan waarin je kan zoeken : Kies de tabel “eav_attribute_option_value” en klik dan op “GO” rechtsonder.
3. Browse het resultaat : je ziet normaal een tabel met rijen waaronder een kolom “option_id”. Kijk of er dubbele ingaves zijn voor “option_id”, maar OPGEPAST ! Indien je een multistore website hebt (dus eentje bvb met verschillende talen) dan moet je rekening houden met de combinatie option_id EN store. Dus een 22 voor option_id en 0 voor store NL zijn *niet* hetzelfde als een 22 voor option_id en een 1 voor store FR !
4. Verwijder de dubbele entree waar het option_id en de store id hetzelfde zijn als in een bovenstaande rij.
5. Alles zou weer moeten werken.

Changing DEV from SQLite to MySQL

The last few weeks I had quite a few problems with SQLite – whenever I was updating the database using threads (so multiple connections at the same time), fairly frequently a database access error would show up.

Regular usage was fine, no problems, and before I had less than 15 keywords to scan which worked fine as well. Even so, there really shouldn’t have been a problem, as I used the same number of threads to access the database.

The problem might even lie in the interaction between Dropbox, which I use to store my development work and the sqlite database in there as well.

So to solve the problem and because at some point I do need to switch over, I set up a local MySQL database and connected to it. Works fine, and seems to be heaps faster to process the returned data.

So far so good, I don’t seem to have any connection problems any more. And the MySQL Workbench to analyze your schema and tables and user accesses is a joy to work with !