WS12 Posted June 25, 2013 Share Posted June 25, 2013 Bonjour, J'ai essayé un upgrade de la 1.4.7.0 vers la 1.5.4.1, d'abord en essayant le 1-click upgrade, mais ça a planté et j'ai maintenant l'erreur suivante : Fatal error: Class name must be a valid object or a string in /homez.398/wsdczipg/www/lilou/classes/controller/Controller.php on line 128 126 public static function getController($class_name, $auth = false, $ssl = false) 127 { 128 return new $class_name($auth, $ssl); 129 } J'ai alors essayé un upgrade manuel, j'ai bien suivi la procédure, mais quand je vais sur /install/upgrade/upgrade.php j'obtiens une page blanche. Dans defines.inc.php, j'ai passé define _PS_MODE_DEV_ à true mais ça n'y change rien : page blanche, code source vide. Une précision : au lieu des tester l'upgrade en local, j'ai utilisé un serveur distant dont la configuration est strictement identique à celle de ma boutique. J'avais déjà essayé d'upgrader cette boutique il y a quelques mois mais j'avais abandonné après une trentaine d'heures de tentatives infructueuses... D'avance merci de votre aide Virginie Link to comment Share on other sites More sharing options...
Gregory Roussac Posted June 27, 2013 Share Posted June 27, 2013 (edited) Rebonjour Virginie, 442 tables sur une seule base donc c'est deja trop pour ces ressources. Une base par cms SVP ! Manipulation, backup, hacking ...une base par site svp. Ensuite passez sur les VPS si vous etes clients OVH svp https://www.ovh.com/fr/vps/ , souvent il n'y a pas peut etre pas assez de ressources sql en mutualisé. Il n'a pas fini l'upgrade car soit il y a eu un problème mais là je ne peux pas voir sans les logs, soit tout simplement le laconique "mysql has gone away" à cause de ressources mysql limitées. Donc vous vous retrouvez avec des fichiers 1.5.4.1 avec un base mi 1.5 / mi 1.4. Language.php on line 671 par ce qu'il lui manque la table ps_lang_shop de la 1.5 en base de données. Par contre le fichier defines.inc.php etait celui d'une 1.4 et non celui d'une 1.5 !? j'ai re uploadé ce fichier depuis une 1.5. Donc il faut ensuite forcer un upgrade manuel (methode qui n'est pas recommandée dans la doc) en passant par l'installeur, qu'il faut re uploader à la racine. L'upgrade manuel se fait donc par l'appel de www.site.com/install/upgrade/upgrade.php ce qui nous donne la belle erreur 28 en resultat xml. Par ce que le fichier settings.inc.php dit que la boutique est déjà en 1.5.4.1 et qu'il n'y a rien a upgrader. On modifie donc define('_PS_VERSION_', '1.5.4.1'); par define('_PS_VERSION_', '1.4.7.0'); dans settings.inc.php la version de départ de la migration pour demander à l'upgrade de reprendre la mise à jour de la base depuis cette version. A la relance de l'upgrade manuel et là on tombe malheureusement sur [b]Warning[/b]: Invalid argument supplied for foreach() in [b]/www/install/upgrade/php/add_new_tab.php[/b] on line [b]41[/b] [b]Warning[/b]: Invalid argument supplied for foreach() in [b]/www/install/upgrade/php/update_order_detail_taxes.php[/b] on line [b]34[/b] [b]Warning[/b]: Invalid argument supplied for foreach() in [b]/www/install/upgrade/php/add_new_tab.php[/b] on line [b]41[/b] [b]Warning[/b]: Invalid argument supplied for foreach() in [b]/www/install/upgrade/php/add_new_groups.php[/b] on line [b]35[/b] [b]Warning[/b]: Invalid argument supplied for foreach() in [b]/hwww/install/upgrade/php/add_new_tab.php[/b] on line [b]41[/b] [b]Fatal error[/b]: Call to a member function fetch() on a non-object in [b]/www/classes/db/DbPDO.php[/b] on line [b]90[/b] car apparemment il y a un souci avec le driver PDO sur ces mysql persos, on modifie donc /classes/db/Db.php pour qu'il ne renvoi que MySQL comme connecteur à la base et non plus DbPDO. public static function getClass() { $class = 'MySQL'; /*if (PHP_VERSION_ID >= 50200 && extension_loaded('pdo_mysql')) $class = 'DbPDO'; else if (extension_loaded('mysqli')) $class = 'DbMySQLi';*/ return $class; } (Il faut mieux re uploader l'installeur de la branche github "développement" actuellement qui corrige plusieurs choses pour eviter des "mysql has gone away" en attendant la prochaine version de PrestaShop dans quelques semaines.) On relance l'upgrade et on attend que la page finisse de charger. On vide ensuite le cache navigateur pour avoir le back office avec la bonne css. On supprime le module dibs (1.4) par FTP car non compatible 1.5 et qui sinon empêche l'affichage du listing des modules en back office. Il ya peut être des tables qui n'ont pas été migrées jusqu'au bout mais en ayant fait un tour rapide, l'ensemble du shop en back office a l'air de bien marcher. Par contre il y a pas mal de module tiers en front office qui utilisent des fonctions dépréciées qu'il va falloir corriger. En repassant le mod_dev à 'false' dans defines.inc.php il retire normalement ces avertissements. Désolé pour cette longue réponse un peu barbare et ces desagrements de mise à jour mais j'ai voulu expliquer dans le detail ce que j'ai fait sur votre shop, si cela peut servir aux suivants. Cordialement Edited June 27, 2013 by Gregory Roussac (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now