INTRODUCTION


Les migrations Prestashop sont un enfer! Chaque migration faite via le module "Click Upgrade" me retournait une erreur à la partie de l'upgrade de la base de donnée. J'ai donc mené ma petite enquête et vous livre ma solution car j'ai pû constater que beaucoup de personne était dans mon cas sans trouver de solution.

 
Dans un premier temps si vous utilisez Plesk, Virtualmin ou autre il faudra passer par eux sinon les modifications seront à faire dans les fichiers.
 
Ensuite la base:
 
memory_limit à vérifier
max_execution_time à vérifier​


Rien d'extraordinare!
 
Viens la partie important il faut mettre le "PHP script execution mode" sur Apache(mod_php) et non sur CGI ou FCGId.
 
La migration doit se faire en moins de 5 minutes.
 
Testé de la version 1.4 à la version 1.6
 
 
 

BONUS

 
Pour aller plus vite je me suis fait un tuto/script sur le même serveur afin de faire la migration du site en PROD sur un autre site dit TEST. Ceci me permet de faire la migration et de repartir à zéro en cas d'échec de la migration ou reprendre des données plus "fraîches" sur le site de PROD.
 
 
 
Process migration
 
Supprime le répertoire du site TEST
rm -r /home/site-test/public_html/​


On copy le site PROD sur le site TEST, on met le bon group:user et le permissions.
cp -R /home/site-prod/public_html/ /home/site-test/
chown -R group:user /home/site-test/public_html/
chmod -R 777 /home/site-test/public_html/​
chmod -R 777 /home/site-test/public_html/ (remettre les bons droits en PROD)
 
Dump de la base de donnée PROD
mysqldump -u user -p database_prod > /home/site-test/dumpMigration.sql​


Importation de la base de donnée PROD dans la base de donnée TEST
mysql -u user -p database_test < /home/site-test/dumpMigration.sql​


Editer les confs Prestashop (ne copier pas bêtement, il faut mettre les bons paramètres)
 
cat << EOF > /home/site-test/public_html/config/settings.inc.php
 
<?php
 
define('__PS_BASE_URI__', '/');
define('_MEDIA_SERVER_1_', '');
define('_MEDIA_SERVER_2_', '');
define('_MEDIA_SERVER_3_', '');
define('_PS_CACHING_SYSTEM_', 'MCached');
define('_PS_CACHE_ENABLED_', '0');
define('_THEME_NAME_', 'theme');
define('_DB_NAME_', 'database_test');
define('_MYSQL_ENGINE_', 'InnoDB');
define('_DB_SERVER_', 'localhost');
define('_DB_USER_', 'user');
define('_DB_PREFIX_', 'ps_viv_');
define('_DB_PASSWD_', 'password');
define('_DB_TYPE_', 'MySQL');
define('_COOKIE_KEY_', 'key');
define('_COOKIE_IV_', 'key');
define('_PS_CREATION_DATE_', '2014-05-12');
define('_RIJNDAEL_KEY_', 'key');
define('_RIJNDAEL_IV_', 'key');
define('_PS_VERSION_', '1.4.8.2');
 
?>
 
EOF​