The most effective way to migrate a site from PrestaShop 1.4 to 1.6

Published : 10/02/2015 09:45:14
Categories : PrestaShop Rss feed

The most effective way to migrate a site from PrestaShop 1.4 to 1.6
(Translated from French with Google Translate - Manual corrections still to be done)

Introduction:

It was not a week goes by that my modules In User wonder whether or not this is a good idea to migrate an "old" site to the latest version of PrestaShop 1.6, and if so, how.

Having the same I throw myself into the adventure of migration of this site 1.6.1 to 1.4.5.3, I could like almost everyone, I realized that the automatic migration tool PrestaShop (module " one click upgrade ") was totally unable to go through the process. The number of errors and crashes from the use of this tool is pretty amazing, as soon as one starts with a rather old version. Forget it then.

So far the only alternative, or say compromise was to install a PS 16 to a virgin and export / import data (customers, orders, products, versions, categories and everything else) with the old site various tools. PrestaPricing and PrestaCategories eg for the catalog elements.


This remains a long and arduous process.

There are better, much better and I will share with you this really great method. To summarize it is:

1 / Migrate the database in the new format 1.6, retaining its data, without at the same PrestaShop code migration time.

2 / Associate base and update a brand new PrestaShop 1.6, virgin, to end up with a site completely focntionnel 1.6, with the default theme, but utilsant your data.

3 / Change website theme, re-install your add-ons (1.6 compatible versions of course)

Choice of your host provider:

Before introducing this method step, I want to return to the choice of hosting for your new website. In fact if your current website is slow, performing a major update of PrestaShop is I think the right opportunity to choose the right hosting solution.

Shared or dedicated? : Below 1,000 orders per month, website traffic does not justify investing in a dedicated.

There is an incredible amount of hosts and can speak totue independence of those I have had the opportunity to test in number 4:

LWS: cheap solution but I strongly advise that if you support the notion is important. Answers to questions by a ticket system, often only the next day and mostly completely beside the problem.

OVH: everyone knows, world number 1. But frankly I do not know why. I can not count the number of times I had to work on sites hosted in shared hosting and OVH étaitent by very slow intermittent. There's a rumor that says that OVH could set up on its shared servers a system of "protection" of bandwidth, limiting the speed or volume of SQL queries allowed on a site, not to penalize other sites even servers. So I do not recommend too.

O2Switch: sitolog long been hosted at home and I still have another site for an account with them. I would say that this has still a very good economical choice because everything is "unlimited" for 6 € per month. Their support is also available and competent. But they have chosen to have only one offers the catalog and overall I was disappointed by the speed of the server and its lack of stability (sintermittents frequent stop a few minutes, never explained). In the opinion of O2Switch, because of my PrestaShop, and was unable to get support to optimize I préferré from ...

Yoorshop: so I migrated my website to O2Switch Yoorshop, other French web host, identically and was able to see immediately a marked improvement in terms of speed. For a little more expensive (€ 19 / month), I have automatic backups, an SSL certificate and a truly optimized solution for speed. Their support is tip top. The only downside with this host, communication is a little "rough" times. I'm from the old school and appreciate the courtesy. This last point apart, and although I know that there may be other alternatives, I recommend to date frankly choosing Yoorshop. My new site once spent frankly PS 1.6 runs faster than before.

Migration Method:


Suppose your old PrestaShop is on the server in a folder / current /

1 / Make one, not two, backups of your entire site, from / current / files (with Filezilla for backup on PC or faster with the file manager of your Cpanel for a backup on the server itself ) and database (with PrestaShop or PHPMyAdmin).

In fact, it goes without saying it is, but the writing is even better: I assume no liability if the following procedure failed and you have a loss of data or negative impact whatsoever.

2 / During the operation, it is advisable to put the current shop in maintenance mode. So it is preferrable to do it at night when everyone is asleep to avoid losing orders.

Important: If you are not comfortable with the idea of ​​doing all this directly on the server, it is also possible, see recommended, install a server emulator for PC (like EasyPHP) and do everything locally. Then upload the new site and the new database once everything works locally.

My website requires a lot of customization after migration, this is what I have done, to avoid having to leave permanent site maintenance.

3 / Create on the server (again if you have changed your hosting) a new directory. I call / new

4 / Optional, for safety, you can also create another temporary working directory on the server and duplicated in all of your current site. I call / former

Knowing that it is very long, I jumped from me to this stage, the risk appearing weak me having previously been good backups.

5 / Download PrestaShop 1.6, unzip the file on the PC to a temporary folder and a tool commme Filezilla, upload the entire contents of that folder with subfolders in the / new. Go drink coffee, is a long time ....

6 / Once the transfer is complete, rename the admin folder of the new Prestashop the same name as the admin folder of your old PrestaShop

7 / Give the right of access to 777 setting.inc.php file in the admin folder of the new PrestaShop.

8 / Copy from / old / (or / current /) to / new / folders with the following content:

/ mails

/ img except subfolders / img / admin and / img / jquery-ui

/ download

/ upload

9 / Start PHPMyAdmin on the new server (or even if you do not change server), create a new database, which I'll call "ancienneamigrer" and import it into your last backup of your current database.

10 / Copy from / old / config / to New / config / settings.inc.php the file (replacement of already present in this folder)

11 / Edit the contents of this file (any word processing permits) as follows:

define ('__ PS_BASE_URI__', '/ new /');
define ('_ THEME_NAME_', 'default-bootstrap');
define ('_ DB_NAME_', 'ancienneamigrer');
define ('_ DB_SERVER_', 'localhost');
define ('_ DB_USER_', 'root');
define ('_ DB_PASSWD_', '');

Note: Adapt course root and the password to your own SQL settings.

12 / This is where everything happens: from your web navigteur, go to this address:

urlduserveur / new / install / upgrade / upgrade.php

or if you travailez locally:

localhost / new / install / upgrade / upgrade.php

This launches a migration script from your current database to the format (or structure) of the dernère version of PrestaShop, while preserving the data.

After a few seconds or minutes ,, if the page displays an XML file whose first line contains

Action = result = ok error

Is that everything went well. Congratulations.

Otherwise we will have to analyze and understand the errors listed (or not) in the xml file, correct them and restart the script. What I observed:

-If You are full of mistakes everywhere: Step 9 is not well focntionnée, missing tables in the database.

-error 5: Writing rights issue in settings.inc.php, put it in 777

-error 28: problems with the line

define ('__ PS_BASE_URI__', '/ new /'); in setting.ic.php file

-Page White: there is a syntax error in the setting.inc.php file as a missing quotation mark.

13 / If everything is ok, test the new site (start with the back office with your usual logging). Should be a beautiful site to version 1.6, with its default theme and your old data.

14 / Delete the folder / new / install / for safety.

15 / Set up your modules, Fast Search another theme or customize the default theme, etc ...

16 / If you have worked locally, when everything is ok, put it in the service, duplicate it all files and database to the server, adjust according setting.inc.php the file, test and exit the maintenance mode when everything works good.

17/Satisfied ? make it known ! there is one more step, taking 20 sec and optionnal, thnaks us for this tips by shairing this page on the social networks, by clicking on the buttons located below this article.


Other concerns encountered:


Activez le mode "Legacy images", puis le déplacement des images dans les sous dossiers et désactivez le mode "Legacy images".">Product images do not appear => Enable mode "Legacy pictures" and moving images in subfolders and disable the mode "Legacy Images". If not it's enough, start regeneration of thumbnails.

Many errors in 404 local => disable the redirect URLs

Many errors in 404 remote => disable the redirect URLs to rebuild and reactivate the .htaccess.

The backoffice or afichent site without the layout, often a mistake with the line define ('__ PS_BASE_URI__', '/ new /'); in setting.ic.php file

Good luck.

Franck

Share this content

Comments (16)

Franck


09/26/2019 17:38:41

Oui il s'agit de re-copier dans le dossier /modules/ les modules que vous utilisiez (si ils sont compatibles avec la nouvelle version de PS), puis dans l'administration, les "installer et configurer".Si vous avez les fichiers .zip d'installation des modules, vosu pouvez aussi utiliser le bouton "Ajouter un module". Cela revient au même.Je conseille de le faire module par module ou par petit nombre à la fois. Ainsi si vous avez un plantage du style page blanche, vous saurez quel module supprimer.

tomane


09/26/2019 17:02:21

BonjourQuand vous dites de mettre en place les modules, c'est quoi exactement ? Copier le dossier modules ou les réinstaller ?Merci d'avance

etienne


09/03/2017 23:39:27

Merci pour ce tutos très clair et précis. Après plusieurs essai, ça marche enfin...

Franck


03/21/2017 12:12:14

kpi_lang n'est pas une table standard de PrestaShop. Elle doit venir d'un module et le script de PrestaShop ne doit pas arriver à gérer cette table. J'aurais tendance à vous suggérer de dé-installer ce module avant la migration et de le ré-installer ensuite. Faites une sauvegarde des tables de ce module avant et ré-installez les ensuite..

delf


03/21/2017 12:02:41

Bonjour, je viens de tenter la migration j'ai le message d'erreur suivant : error="34" j'ai identifié que le problème venait de ma table: ps_configuration_kpi_lang Mais je ne comprend pas comment la modifier pour régler le problème. Merci par avance Delf

Gee


06/30/2016 16:42:33

Bonjour !Merci pour ce tuto. Au moment de l'upgrade j'ai cette erreur : "This XML file does not appear to have any style information associated with it. The document tree is shown below." Avec en dessous la balise : ... qui quand je l'ouvre donne une multitude (une centaine voire plus...) de balises du style : ...Est ce que quelqu'un comprends le soucis ..?Un grand merci d'avance.

Franck - Sitolog


05/18/2016 19:53:30

Steve et Christele,Désolé, mais je n'ai pas de solution à vous proposer, je n'ai pas rencontré ce genre de cas.Christele l'erreur indique un doublon sur une clé composée unique, dans la table ps_access. Je pense qu'il faut aller analyser cette table (les index), trouver le doublon et le supprimer. Mais cela devient un peu technique et il faut connaitr ePHPMyAdmin et la notion d'index et de clé unique en MySQL.Peut être contacter Pascal de NetEnvie qui comme indiqué plus haut à une approche plus manuelle mais aussi plus rigureuse et qui pourra peut être vous assister.Crdlt Franck

Christele


05/18/2016 18:47:07

Bonjour,j'ai suivi ce pas à pas pour une mise à jour, en local avec Wamp, de ma boutique déjà en 1.6. mais qui fonctionnait mal (mise à jour depuis 1.4). J'ai voulu repartir sur du "propre" mais arriver à l'étape, importation de l'ancienne BDD, j'ai ce message d'erreur qui me bloque :ErreurRequête SQL :INSERT INTO `ps_access` (`id_profile`, `id_tab`, `view`, `add`, `edit`, `delete`) VALUES (1, 1, 1, 1, 1, 1), (1, 2, 1, 1, 1, 1), (1, 3, 1, 1, 1, 1), (1, 4, 1, 1, 1, 1), (1, 5, 1, 1, 1, 1), (1, 6, 1, 1, 1, 1), (1, 7, 1, 1, 1, 1), (1, 8, 1, 1, 1, 1), (1, 9, 1, 1, 1, 1), (1, 10, 1, 1, 1, 1), (1, 11, 1, 1, 1, 1), (1, 12, 1, 1, 1, 1), (1, 13, 1, 1, 1, 1), (1, 14, 1, 1, 1, 1), (1, 15, 1, 1, 1, 1), (1, 16, 1, 1, 1, 1), (1, 17, 1, 1, 1, 1), (1, 18, 1, 1, 1, 1), (1, 19, 1, 1, 1, 1), (1, 20, 1, 1, 1, 1), (1, 21, 1, 1, 1, 1), (1, 22, 1, 1, 1, 1), (1, 24, 1, 1, 1, 1), (1, 26, 1, 1, 1, 1), (1, 27, 1, 1, 1, 1), (1, 28, 1, 1, 1, 1), (1, 29, 1, 1, 1, 1), (1, 30, 1, 1, 1, 1), (1, 31, 1, 1, 1, 1), (1, 32, 1, 1, 1, 1), (1, 33, 1, 1, 1, 1), (1, 34, 1, 1, 1, 1), (1, 35, 1, 1, 1, 1), (1, 36, 1, 1, 1, 1), (1, 37, 1, 1, 1, 1), (1, 38, 1, 1, 1, 1), (1, 41, 1, 1, 1, 1), (1, 42, 1, 1, 1, 1), (1, 43, 1, 1, 1, 1), (1, 44, 1, 1, 1, 1), (1, 46, 1, 1, 1, 1), (1, 47, 1, 1, 1, 1), (1, 49, 1, 1, 1, 1), (1, 80, 1, 1, 1, [...]MySQL a répondu: Documentation #1062 - Duplicata du champ '1-1' pour la clef 'PRIMARY'Je cherche sur le web depuis un moment, mais je ne comprends pas l'erreur. Avez-vous une idée ?

Steve


04/26/2016 18:09:17

Bonjour Frank, merci pour ton tuto que j'ai utilisé il y a quelques temps avec succès. Cependant, je viens de le refaire et cela ne fonctionne plus :( J'ai toujours la même erreur qui est : Erreur d'analyse XML : données incompréhensibles après l'élément de document Emplacement : http://localhost/migration/install/upgrade/upgrade.php Numéro de ligne 2, Colonne 1 : J'ai essayé de trouver d'où cela pouvait venir sur le web mais aucune info si ce n'est ceci : error 33 : Impossible de lire le fichier contenant les mises à jour SQL Vérifiez que les fichiers contenant les mises à jour SQL sont bien dans le dossier /install/upgrade/sql et que ceux-ci ont les bons droits (lecture notamment). J'ai regardé mais je suis en local donc aucun problème de droits sur les fichiers. J'avoue que je ne comprends plus rien, aurais-tu une idée ? Merci d'avance.

Pascal - Netenvie.com


04/08/2016 08:44:32

Salut Franck. N'as tu rencontré aucun problème d'auto increment manquant sur certaines tables (ps_theme ou ps_tab par exemple) ? On rencontre souvent ce souci en migrant de 1.5 à 1.6 avec le script one click upgrapde. Du coup ensuite certaines installations posent souci car on se retrouve avec des Id à 0 ce qui donne une valeur vraie avec la fonction isempty ... donc une erreur Presta.

Franck - Sitolog


03/17/2016 14:54:10

Damien, Cela signifie dans votre cas que erreur 28 à une autre cause dans votre cas. Je partageais juste le fait d'avoir rencontré cette erreur et la cause dans mon cas. Voir par exemple le commentaire de Brice qui a aussi rencontré cette erreur qui peut manifestement avoir plusieurs causes.

David, Si à l'étape 7 le fichier n'existe pas, ce n'est pas grave, car on va de toutes façon le remplacer par celui de l'ancien site à l'étape 10 Et à l'étape 10, si le fichier n'existe pas, le créer tout simplement en faisant un copier-coller du fichier de l'ancien site.

Charlotte, donne nous le résultat de ton essai.

Pascal, je ne parle des redirections 301 pas en effet, mais voir mon autre article consacré à ce sujet.

Dernière étape de cete migration, je viens de passer tout le site en https (full SSL), avec activation du HSTS (certificat A+ gratuit chez Yoorshop). La aussi il y a beaucoup de choses à partager, je vais essayer de résumer cela dans un autre article. Franck

David


03/17/2016 12:23:46

Merci pour cette méthode, que j'essaye d'expérimenter. Mais je me heurte à une incohérence à l'étape 7 et 107/ Le fichier settings.inc.php n'existe pas dans le dossier /admin .10/ Et dans /config, il n'existe pas non plus puisque qu'on a pas encore lancé l'installation de prestashop 1.6.Ma question est donc : faut il lancer l'installation de prestashop 1.6 avant de faire votre manipulation avec la base ?Merci par avance DM

Charlotte


03/16/2016 16:34:26

C'est vraiment génial comme technique. C'est marrant car je ne l'ai lue nulle part ailleurs. Je viens d'essayer en local et ça a fonctionné sans problème. Au lieu de partir d'une version toute neuve de prestashop 1.6, peut-on partir d'une copie d'un site avec le thème déjà tout prêt et y ajouter le dossier install ? Je pense que je vais essayer.Bien cordialement, Charlotte

Brice


02/24/2016 15:11:17

pour l'erreur 28 de l'étape d'upgrade, il s'agirait plus de ça : https://www.prestashop.com/forums/topic/191184-mise-a-jour-manuelle-action-resultfail-error28/Merci pour ce tuto qui simplifie vraiment les étapes

Damien raynaud


02/19/2016 12:07:01

Bonjour Frank, Merci pour votre tuto, En suivant tout votre tuto, j'arrive "l'Erreur 28 : soucis avec la ligne" J'ai donc ouvert le fichier mais je ne vois pas la ligne dont vous parlez, alors je l'ai rajouté (faut-il faire çà ?) La seule différence est que j'ai mon nouveau presta dans un repertoire qui s'appel /Dev (et pas nouveau, donc j'ai adapté la sementique). et que j'ai crée spécialement une BDD rien que pour lui (en ayant importer l'ancienne bien-sure!).Mais cela ne semble pas fonctionnerAvez-vous un conseil s'il vous plait ? Je suis joignable sur ce mail : [email protected]

Pascal - Netenvie.com


11/10/2015 18:36:59

Merci pour ce retour d’expérience. Personnellement je préfère migrer sur nouveau serveur en notant les corrections à apporter sur la base. Cela permet d'y installer les nouveaux modules et de tout tester une fois la base misà jour tout en laissant l'ancien site en production. Une fois le nouveau site testé et finalisé on peut ainsi re-migrer la base de données au jour J en respectant cette procédure de correction. Le seul défaut est qu'il y a une transition au niveau des DNS puisqu'on change d'IP. Par contre on a le temps d'optimiser et de sécuriser le serveur. Enfin tu ne parle pas des redirections 301 qui me semblent essentielles si certaines URLs changent.

You must be register

Clic here to register

Add a comment