Doorzoek deze site:
Wat zijn wij aan het doen?

14 september 2012

Voor een klant aan het werken met Magento Community Edition en daarbij tegen een probleem aan het aanlopen. Het werd opgelost, maar dat vergde veel zoekwerk en daarom zet ik de oplossing hier neer voor als mensen ooit hetzelfde probleem hebben.

Wat we deden was een testkopie van de Magento maken, onder andere domeinnaam (dat moet, anders werkt het niet), zodat we in die testomgeving upgrades en inhoud kunnen testen voordat we de wijzigingen overzetten naar de productie-omgeving.

Na kopiëren van de database (dat moest per tabel, omdat het vanwege de omvang niet met 1 MySQL-dump kon) kregen we een foutmelding bij het bekijken van het frontend:

Notice: Undefined index: 0 in /app/code/core/Mage/Core/Model/Mysql4/Config.php

en de oorzaak blijkt een banale. De Engelstalige uitleg staat hier, maar zou daar ooit kunnen verdwijnen, daarom citeer ik 'm:

I was moving a installation to a production server and was getting this error message: Notice: Undefined index: 0 in app/code/core/Mage/Core/Model/Mysql4/Config.php on line 92. It took a lot of searching to figure out the problem, but here is what I found. When Magento installs it sets store and website ids in the database. When transferring the database the new database did not like having an id of 0 for the admin part of the site, so it made it have an id of 2. This is what my problem was. To fix it I went into the core_store and core_website Tables and gave the admin site an id of 0. It looks like this may only affect certain versions of Magento (Earlier versions). Hope this helps someone else.

P.S. I also got foreign_key_constraint errors when importing my database. To solve this disable foreign key check when you export your database. Then when you need to change the core_store and core_website id's you will probably need to surround your sql with the following code:

set foreign_key_checks=0;
//SQL to update ids
SET FOREIGN_KEY_CHECKS=1;

en daar voeg ik aan toe dat mij ongeveer hetzelfde overkwam: bij het omzetten van 2 naar 0 in core_store kreeg ik een foreign_key_constraint foutmelding. Dat loste deze code op:

set foreign_key_checks=0;
UPDATE `dbname`.`core_store` SET `store_id` = '0' WHERE `core_store`.`store_id` =2 LIMIT 1;
SET FOREIGN_KEY_CHECKS=1;

, dit ondanks dat de eerste en derde regel een empty row opleverden. Daarna deed ik hetzelfde voor 'core_website' maar daar bleek de foreign_key_check regelarij toen al niet meer nodig.



Eerdere afleveringen:
11.09.2012
09.09.2012
07.09.2012
augustus 2012
juli 2012
juni 2012
mei 2012
april 2012
maart 2012
februari 2012
januari 2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001
2000
1999
1998



Back | Forward | Home | Mail