Jump to content
Lenny Obez

Peut-on lier une base de données PrestaShop 1.6 avec PrestaShop 1.7 ?

Recommended Posts

Bonjour tout le monde,

 

En mettant à jour vers PrestaShop 1.7, j'ai dû réaliser une nouvelle installation - étant donné que la nouvelle n'est pas rétrocompatible -; afin de conserver toutes les informations du site, j'ai "simplement" lié la nouvelle installation à l'ancienne base de données.

 

Avec PrestaShop 1.6, je pouvais modifier cette liaison via le fichier settings.inc.php disponible dans le dossier config, les informations par rapport à la base de données sont les suivantes :

 

define('_DB_NAME_', 'nom-de-la-db');
define('_MYSQL_ENGINE_', 'InnoDB');
define('_DB_SERVER_', 'hôte:port');
define('_DB_USER_', 'nom-de-utilisateur');
define('_DB_PREFIX_', 'préfixe');
define('_DB_PASSWD_', 'mot-de-passe');
 
Dans PrestaShop 1.7, c'est légérement différent, je dois me rendre dans le fichier parameters.php disponible dans le sous-dossier config lui-même entreposé dans le dossier app, ici, les informations sont les suivantes :
 
'database_host' => 'hôte',
'database_port' => 'port',
'database_name' => 'nom-de-la-db',
'database_user' => 'nom-de-utilisateur',
'database_password' => 'mot-de-passe',
'database_prefix' => 'préfixe',
'database_engine' => 'InnoDB',

 

Donc voilà, je ne pense pas avoir mal configuré les accès étant donné que vous voyez bien que c'est du copié-collé dans les bons champs, cependant, j'ai l'erreur suivante :

[PrestaShopException]

Link to database cannot be established:SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
at line 102 in file classes/db/DbPDO.php

97.     public function connect()
98.     {
99.         try {
100.             $this->link = $this->_getPDO($this->server, $this->user, $this->password, $this->database, 5);
101.         } catch (PDOException $e) {
102.             throw new PrestaShopException('Link to database cannot be established:'.$e->getMessage());
103.         }
104. 
105.         // UTF-8 support
106.         if ($this->link->exec('SET NAMES \'utf8\'') === false) {
107.             throw new PrestaShopException('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.');

DbPDOCore->connect - [line 323 - classes/db/Db.php]
DbCore->__construct - [line 234 - classes/db/Db.php] - [4 Arguments]
DbCore::getInstance - [line 48 - config/alias.php]
pSQL - [line 339 - classes/shop/Shop.php] - [1 Arguments]
ShopCore::initialize - [line 120 - config/config.inc.php]
require - [line 43 - admin/index.php] - [1 Arguments]

L'erreur signale que la connexion à la base de données est impossible, qu'ai-je loupé ?

 

Bien à vous,

Lenny Obez

Share this post


Link to post
Share on other sites

Bonjour,

 

donc vous vous êtes dit que votre boutique pourrait fonctionner avec les fichiers neuf et une base ancienne ... ERREUR

 

Les bases de données n'étant pas les même ce n'est tout simplement pas possible.

 

Pour preuve la liste de tous les fichiers .sql présent dans le répertoire install/upgrade/sql de votre nouvelle installation.

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour Mediacom87,

 

Et comment puis-je récupérer les éléments essentiels, liste de produits, liste des clients, liste de leur(s) facture(s) ainsi que des messages échangés ?

 

Bien à vous,

Lenny Obez

Share this post


Link to post
Share on other sites

Bonjour Mediacom87,

 

Et comment puis-je récupérer les éléments essentiels, liste de produits, liste des clients, liste de leur(s) facture(s) ainsi que des messages échangés ?

 

Bien à vous,

Lenny Obez

Tu peux réaliser un export de ta base en CSV et ensuite ré-importer les données. Il y a des modules payants por faire ça, mais c'est aussi possible de se débrouiller avec des choses gratuites. Perso j'ai préférer refaire des CSV pour les catégories/produits à la mains et pour la base clients je suis toujours pas arrivé à importer leur compte en complet....

Share this post


Link to post
Share on other sites

Déjà tenté directement sur la base de données, sans module, je me tape des erreurs de création de fonction amb_machinbidule lorsque j'importe dans la base de données créée avec PrestaShop 1.7. Mais c'est parce que j'exporte l'entièreté ... Je ne sais pas quoi garder ... J'ai 250 tables !

 

Quelqu'un aurait une liste des tables identiques dans la 1.7 et qui sont indispensables en cas de mise à jour 1.6 vers 1.7 ? Parce que j'ai des préfixe_orders, préfixe_orders_machin1, préfixe_orders_machin2, préfixe_orders_machin3_machin1_machin1.

Share this post


Link to post
Share on other sites

Je ferai les adaptations une par une s'il le faut mais là, c'est l'erreur suivante :

 

throw new PrestaShopException('Link to database cannot be established:'.$e->getMessage());

 

qui survient lorsque la fonction suivante :

 

$this->link = $this->_getPDO($this->server, $this->user, $this->password, $this->database, 5);

 

est appelée, en gros, c'est vraiment LA connexion qui ne fonctionne pas. Ça n'a pas l'air d'être un problème de base de données différentes ...

 

Je remarque que dans le fichier comportant cette fonction - classes/db/DbPDO.php -, il n'y a que ça :

 

* @param string $host
* @param string $user
* @param string $password
* @param string $dbname
 
Mais je ne vois pas le port, est-ce normal ? J'ai dû mettre un port manuellement dans les autres fichiers et ici, ils n'ont pas l'air de le prendre.
Edited by Lenny Obez

Share this post


Link to post
Share on other sites

on peut lier, votre problème vient de user db et mots passe db

créez un nouveau user

Edited by mouradian

Share this post


Link to post
Share on other sites
On 10/11/2017 at 10:22 PM, Mediacom87 said:

Bonjour,

donc vous vous êtes dit que votre boutique pourrait fonctionner avec les fichiers neuf et une base ancienne ... ERREUR

Les bases de données n'étant pas les même ce n'est tout simplement pas possible.

"

Bonjour,

MediacomSuperstar

...C'est quand même ce que dit le "tuto" du blog officiel...
Rédigé par une agence spécialisée.
On connecte les fichiers de 1.7 à la base de données 1.6...
https://www.prestashop.com/fr/blog/mettre-a-jour-ma-boutique-prestashop-1-6-vers-1-7
 

<cite> " Il faut également copier le fichier :

/config/settings.inc.php

Ce fichier contient les informations de votre boutique, de connexion à la base de données, la clé pour décrypter les mots de passes, etc, tout ce dont nous avons besoin pour brancher notre nouveau site avec nos anciennes données.

Edited by fredouille

Share this post


Link to post
Share on other sites
Il y a 2 heures, fredouille a dit :

...C'est quand même ce que dit le "tuto" du blog officiel...

Encore faut il bien apprendre à lire et allez plus loin que la citation que vous venez de produire.

Citation

Tout est à présent en place pour lancer le script de mise à jour :

 

Share this post


Link to post
Share on other sites

@fredouille il est aussi écrit :

Nous sommes prêts pour lancer la mise à jour. Un fichier php contient le script de mise à jour qui se chargera de faire les modifications de structures de la base données, l’ajout des nouvelles tables, les modifications de fichiers. Ce fichier est situé ici : /install/upgrade/upgrade.php

Il suffit alors d’appeler l’url dans votre navigateur.

Exemple : http://mon-site.fr/install/upgrade/upgrade.php

 

Share this post


Link to post
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

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More