Script minimaliste pour mettre à jour Prestashop

Parce que chaque mise à jour d’une boutique Prestashop me provoque à chaque fois 140 pulsations cardiaques par minute, j’ai décidé de me simplifier la vie et de me créer un petit script qui permet de mettre à jour sa boutique non seulement en toute simplicité, tout en respectant (à quelques détails près) l’excellente documentation officielle concernant la mise à jour disponible ici.

Certes, le script est “minimaliste”, mais efficace.

Certaines actions sont manuelles, soit parce que je n’ai pas trouvé comment les réaliser en shell ou SQL, soit parce que je suis faignant.

Dans tous les cas, vos retours sont les bienvenus !

?Download upgrade.sh
#!/bin/sh
 
# Fonctions :
 
function pause(){
   read -p "$*"
}
 
# Definitions des variables :
echo "--------------------------------------------------------------------------"
echo "Nouvelle version de Prestashop ? Exemple : 1.4.4.0"
echo "--------------------------------------------------------------------------"
read version_
echo "--------------------------------------------------------------------------"
echo "Nous allons mettre a jour Prestashop vers la version $version !"
echo "--------------------------------------------------------------------------"
 
# Si besoin, creation du repertoire temporaire :
if [ -f /home/user/tmp_upgrade ] 
	then continue
	else mkdir /home/user/tmp_upgrade
fi
 
# 1. Sauvegarde de la boutique actuelle
 
# Dump SQL
mysqldump -h localhost -u LOGIN_BDD -pPASSWORD NOM_BDD > BDD.sql
echo "--------------------------------------------------------------------------"
echo "Dump SQL -> OK"
 
# Archivage et compression des fichiers de la boutique actuelle
tar -cvzf www.tgz /home/user/public_html/boutique
 
# Demander la desactivation manuelle de la boutique :
echo "--------------------------------------------------------------------------"
pause 'Desactiver manuellement la boutique, puis appuyer sur Entree'
 
echo "--------------------------------------------------------------------------"
echo "Archivage + compression des fichiers -> OK"
 
# Deplacement des sauvegardes vers le repertoire tmp_upgrade
mv *.sql /home/user/tmp_upgrade/
mv www* /home/user/tmp_upgrade/
echo "--------------------------------------------------------------------------"
echo "Les fichiers de sauvegarde sont dans /home/user/tmp_upgrade/"
 
# 2. Preparation de la nouvelle version
 
# Creation dossier + telechargement prestashop + decompression :
mkdir /home/user/public_html/boutique_new
wget http://www.prestashop.com/download/prestashop_$version
unzip prestashop*
mv /home/user/scripts/prestashop/* /home/user/public_html/boutique_new/
rm -rf /home/user/user/prestashop*
 
# Migration des fichiers Prestashop :
cp -R /home/user/public_html/boutique/mails/* /home/user/public_html/boutique_new/mails/*
cp -R /home/user/public_html/boutique/img/* /home/user/public_html/boutique_new/img/*
cp -R /home/user/public_html/boutique/themes/MonTheme/ /home/user/public_html/boutique_new/themes/
 
# Migration des modules ajoutes manuellement :
cp -R /home/user/public_html/boutique/modules/footercustom /home/user/public_html/boutique_new/modules/
cp -R /home/user/public_html/boutique/modules/pm_advancedtopmenu /home/user/public_html/boutique_new/modules/
 
# Migration de la configuration de PS :
cp /home/user/public_html/boutique/config/settings.inc.php /home/user/public_html/boutique_new/config/
 
# Sauvegarde de l'ancienne boutique dans un dossier provisoire :
mv /home/user/public_html/boutique/ /home/user/public_html/boutique_old/
 
# Renommer le dossier de la mise à jour de PS :
mv /home/user/public_html/boutique_new /home/user/public_html/boutique
 
echo "--------------------------------------------------------------------------"
echo "La mise à jour est prete a etre installee."
 
# Demander la mise a jour manuelle de la boutique :
echo "--------------------------------------------------------------------------"
pause 'Demarrer la mise a jour depuis un navigateur web a l adresse http://www.votre-url.fr/boutique/install puis appuyez sur Entree une fois la procedure terminee.'
 
# Nettoyage Post-Install
rm -rf /home/user/public_html/boutique/CHANGELOG.txt /home/user/public_html/boutique/readme* /home/user/public_html/boutique/install
mv /home/user/public_html/boutique/admin /home/user/public_html/boutique/admin523
 
# Demander la mise a jour manuelle du fichier .htaccess :
echo "--------------------------------------------------------------------------"
pause 'Regenerez un nouveau fichier .htaccess en reportant bien les anciens parametres de l hebergeur.'
 
# Demander la reactivation de la boutique :
echo "--------------------------------------------------------------------------"
pause 'Reactiver la boutique depuis le back-office.'
 
# Mise a jour terminee
echo "--------------------------------------------------------------------------"
pause 'Mise a jour terminee, place aux tests pour verifier que tout est OK.'

Bien entendu, le script est à modifier selon vos chemins, logins, mots de passe, modules utilisés, etc. Mais surtout selon vos envies !

Ma sauvegarde se fait en live, donc modifier mon script si ma méthode ne vous convient pas.
La documentation conseille plutôt de créer un dossier qui contiendra la nouvelle boutique, et garder l’ancienne jusqu’à vérification du bon fonctionnement de la mise-à-jour.

J’attends vos conseils et remarques !

  • http://www.aoji.fr Tim

    très intéressant! je vais essayer ça en local très bientot

  • http://my1.fr Emilien

    Le script est je pense obsolète à l’heure actuelle… A utiliser avec prudence !