]]>

Problem z instalacją / aktualizacją Magento 1.4.x ( There has been an error processing your request )

2010-09-16 15:39 przez administrator

Aktualizacja Magento do wersji 1.4.x lub nowa instalacja pakietu wraz z przykładowymi danymi bazy danych prawdopodobnie zakończy się komunikatem błędu:

 

There has been an error processing your request
Exception printing is disabled by default for security reasons.

Jeżeli spotkałeś się z takim problemem podczas instalacji, konieczne będą małe modyfikacje plików aktualizacji sql w celu poprawnej instalacji pakietu. Niestety wygląda na to, że proces pakietu instalacyjnego konfliktuje z istniejącą bazą danych poprzednich wersji Magento. Problem wynika stąd iż pakiet instalacyjny próbuje utworzyć lub kopiować tabele w bazie danych, które są już obecne, lub znajdują się w innym miejscu w instalacjach poprzednich wersji (pakiet przykładowych danych na stronie producenta odnosi się do wersji 1.2).

Przed podjęciem jakichkolwiek działań należy utworzyć backup zarówno bazy danych jak i katalogu magento na dysku twardym.

Aby zamiast komunikatu o błędzie podczas instalacji wyświetlała nam się jego treść wystarczy zmienić nazwę pliku

magento/errors/local.xml.sample
z local.xml.sample na local.xml

Jednak aby podejrzeć co dokładnie kryje się pod komunikatem błędu, wystarczy zajrzeć do katalogu

../magento/var/report/

Znajduje się tam plik o nazwie w postaci numeru z kodem błędu np. 1879040192, odczytując go dowiemy się, gdzie leży problem.
W pierwszej linijce znajdziemy następującą informację:

“Error in file: “/var/magento/app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-upgrade-0.7.73-1.4.0.0.0.php” – SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘catalog_eav_attribute’ already exists

Konflikt można rozwiązać w następujący sposób:
Możemy edytować pliki powodujące problem zamieniając polecenia

‘CREATE TABLE’ na ‘CREATE TABLE IF NOT EXISTS’.

Wszystkie podobne problemy możemy rozwiązać następującym poleceniem:

perl -pi -w -e 's/CREATE TABLE/CREATE TABLE IF NOT EXISTS/g;'
/var/magento/app/code/core/Mage/Catalog/sql/catalog_setup/*.php

Możemy także napotkać się na kolejne problemy - sprawdź czy odnoszą się one do plików

‘mysql4-upgrade-0.8.18-0.8.19.php’ oraz ‘mysql4-upgrade-0.8.19-0.8.20.php’.

Jeśli tak, należy zmienić rozszerzenia plików tak, aby nie były brane pod uwagę przy procesie instalacji.

mv /var/magento/app/code/core/Mage/Core/sql/core_setup/mysql4-upgrade-0.8.18-0.8.19.php /var/magento/app/code/core/Mage/Core/sql
/core_setup/mysql4-upgrade-0.8.18-0.8.19.php.xxx

mv /var/magento/app/code/core/Mage/Core/sql/core_setup/mysql4-upgrade-0.8.19-0.8.20.php /var/magento/app/code/core/Mage/Core/sql
/core_setup/mysql4-upgrade-0.8.19-0.8.20.php.xxx

Kolejny problem, który możemy napotkać objawia się następująco:

a:5:{i:0;s:162:”Warning: Invalid argument supplied for foreach() in /var/magento/app/design
/frontend/mystore/default/template/catalog/product/list/toolbar.phtml
on line 51″
;i:1;s:4565:”#0 /var/magento/app/design/frontend/mystore/default/template/catalog/product
/list/toolbar.phtml(51): mageCoreErrorHandler(2, ‘Invalid argumen…’, ‘/var/magento14/…’, 51, Array)

Najszybszym sposobem na usunięcie problemu jest skopiowanie katalogu /template/catalog/product/list/* z nowego default magento do folderu z naszym tematem i opróżnienie zawartości cache.

cp app/design/frontend/base/default/template/catalog/product/list/* app/design/frontend/TWOJTEMAT/default/template/catalog/product/list/

rm -Rf var/cache/*

Upgrade do najnowszej wersji w chwili pisania artykułu magento-1.4.1.1 objawia się z kolei tak:

"Error in file: "/var/magento/app/code/core/Mage/Sales/sql/sales_setup/mysql4-upgrade-0.9.28-0.9.29.php" - SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magtest.sales_flat_order' doesn't exist"

Z wersji 1.4.0 na 1.4.1 zostały wprowadzone zmiany w logice bazy danych odnoszącej się do sprzedaży. Problem można rozwiązać importując brakujące tabele z bazy danych najnowszej wersji instalowanej bez pakietu przykładowych danych. Prawdodobnie bug'ów w pakiecie instalacyjnym jest jednak jeszcze więcej, także najbardziej zalecanym wyjściem jest odczekać jeszcze kilka miesięcy do wprowadzenia niezbędnych poprawek i zostaniu przy wersji <1.4

Wróć

Zobacz również