Note : L’ensemble des commandes SSH de ce tuto sont à taper à la racine de votre projet.
Avec magerun (méthode la plus efficace)
Supprimer la BDD existante, en recréer une vide, importer la nouvelle BDD :
1 2 3 |
$ php shell/n98-magerun.phar db:drop $ php shell/n98-magerun.phar db:create $ php shell/n98-magerun.phar db:import [filename] |
Sans magerun
Si la nouvelle base de données est fournie sous forme d’archive *tar.gz
Décompresser l’archive à la racine de votre projet :
- avec n’importe quel utilitaire de type Winzip, Winrar, 7zip…
- …ou décompresser l’archive en tapant la ligne de commande suivante :
1 |
$ tar -xzvf mon-archive.tar.gz |
Si la nouvelle base de données est fournie sous forme d’archive *.gz
1 |
$ gunzip mon-archive.gz |
Notez bien le nom du fichier ma_nouvelle_base_de_données.sql que vous venez de décompresser. Vous en aurez besoin dans un instant…
Remplir les tables avec la nouvelle base fraîchement copiée
Pour modifier (où simplement obtenir) les username, password et dbname de votre base de données taper la commande :
1 |
$ cat app/etc/local.xml |
Les informations dont vous aurez besoin sont renseignées entre les balises suivantes :
1 2 3 4 |
<default_setup> <![CDATA[mon_username]]> <![CDATA[mon_password]]> <![CDATA[nom_de_la_base_de_données]]> |
Notez que ce fichier doit également contenir l’URL local de votre site :
1 2 3 |
<web> <url><![CDATA[http://mon.url]]></url> </web> |
Commande SSH à exécuter pour déployer la base :
1 |
$ mysql -u <mon_username> -p<mon_password> <nom_de_la_base_de_données> < <ma_nouvelle_base_de_données>.sql |
Attention, lorsque mysql est dockerisé, rajouter un paramètre -h db
. La commande suivante sue joue à l’intérieur du conteneur !
1 |
$ mysql -h db -u <mon_username> -p<mon_password> <nom_de_la_base_de_données> < <ma_nouvelle_base_de_données>.sql |
Lancer, toujours ds le Docker, le script configurator, qui permet de setter la config (notamment de mettre à jour les URLs) projet :
1 |
$ php shell/configurator.php --file shell/configurator/local.json |
Exemple :
1 |
$ mysql -u toto-admin -p1234 mon_projet < nouvelle_base.sql |
Attention : -p et le mot de passe doivent être collés !!
Remarque : il reste possible que la commande fonctionne sans qu’on ait besoin de renseigner le mot de passe.
1 |
mysql -u toto-admin mon_projet < nouvelle_base.sql |
Changer les URLs de la nouvelle base que vous venez d’importer dans votre projet par vos URLs locales
Se connecter à un PhpMyAdmin qui permet d’administrer les tables du projet Magento
Méthode 1:
Si le site possède plusieurs Store Views (multilangue) :
Sous phpMyAdmin, dans le champ textarea de l’onglet SQL, taper :
1 2 |
update core_config_data set value = "http://[URL_de_votre_site]/" where path = 'web/unsecure/base_url'; update core_config_data set value = "http://[URL_de_votre_site]/" where path = 'web/secure/base_url' |
Que faire dans le cas où le contenu des pages s’affiche dans le navigateur mais que les ressources CSS et JS ne sont pas chargées ?
Dans cet ordre :
-
Afficher la source dans le navigateur (ctrl + u) et vérifier que la racine des URLs vers lesquelles pointent vos ressources CSS et JS est similaire à l’URL du site.
Dans l’exemple ci-dessous, ce n’est pas le cas :Si la racine des URLs vers lesquelles pointent vos ressources CSS et JS est différente de l’URL du site :
Rendez-vous en base de données et dans la table core_config_data effectuer une recherche (onglet Rechercher) dans la colonne value avec comme opérateur LIKE %…% et comme valeur le libellé de la racine de votre URL (dans notre exemple : media.xxx.com).
Vous devriez vous retrouver avec les résultats suivants (les URLs dans la dernière colonne de la capture sont déjà modifiées :
Editez les URLs dans la dernière colonne comme suit :
Pourbase_xxx_url
dans l’avant-dernière colonne, mettrez<url_de_la_racine_de_mon_site>/xxx/
dans la dernière colonne. -
Vérifier en backoffice que les caches sont désactivés. System > Cache Management. Attention : j’ai eu un cas où les caches étaient, à priori, désactivés mais lorsque j’ai cliqué sur le bouton « Flush Magento Cache » (1er bouton en haut à droite, au-dessus du tableau) tout est repassé en ENABLED !
En ligne de commande, on peut supprimer les caches de la manière suivante :1rm -fr var/cache/mage-* ; rm -f media/css/* -
Eventuellement, jouer sur la compression des ressources CSS et JS.
System > Configuration > (Sidebar) encart ADVANCED > entrée Developer > volets « Merge JavaScript Files » et « Merge CSS Files » à No.
Méthode 2:
Sélectionner la table core_config_data relative à la base de données de votre projet.
Trouver un mot-clé présent dans toutes les URLs qu’on souhaite changer et effectuer une recherche à partir de celui-ci (cf. illustration ci-dessous avec le mot-clé ‘netapsys’) :
- Onglet Rechercher
- Dans le tableau, dernière rangée ‘value’ sélectionner l’opérateur LIKE %…%
- Mettre votre mot-clé dans la colonne ‘Valeur’
…puis éditer les URLs souhaitées parmi celles qui s’affichent dans la liste des résultats de recherche.
Se connecter au backoffice du projet Magento.
- Catalogue > Gérer les produits
- Sélectionner tous les éléments de la colonne ‘Nom’ qui n’ont pas d’URL de spécifié dans la colonne ‘Sites web’
- En haut à droite du tableau, champ ‘actions’ choisir ‘Mettre à jour les attributs’
- Dans la colonne de gauche ‘Informations produits’ sélectionner l’entrée ‘Sites web’
- Cocher la case qui correspond au site qui vous intéresse dans le groupe de champs ‘Modifier les attributs > Ajouter le produit aux sites web’
- Cliquer sur sauvegarder