Jump to content

Page blanche suite upgrade [ 1.4.7.0 => 1.5.4.1]


Recommended Posts

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

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 by Gregory Roussac (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...