Installation Jeedom sur DB distante - pb apres restauration de sauvegarde

Bonjour,

Suite à l’achat de nouveaux disques durs, je suis en train de réinstaller Jeedom, l’installation se passe sans problème, mais mon souhait est d’installer la db sur une db distante (pas en local sur jeedom).

Jusqu’à présent j’utilisais la procédure ci dessous, qui fonctionnait très bien :

Modification de fichier de configuration de la db avec les infos de la db distante :
nano /var/www/html/core/config/common.config.php

relancer l’installation de jeedom :
php /var/www/html/install/install.php

Jusque la Jeedom fonctionne sur la db distante, tout va bien.

Le problème arrive lorsque je restaure ma sauvegarde par l’interface Web, ma db distante se vide et Jeedom se restaure sur la db locale de Jeedom.

Ce comportement est nouveau car jusqu’à quelques mois ça fonctionnait très bien.

J’ai dezippé ma sauvegarde afin de trouver un fichier de conf a modifier mais j’ai rien trouvé.

Y’a t’il une personne qui puisse m’aider ?

Merci beaucoup,
A++

Hello tout le monde,

Petit up sur ce sujet.

A+

Hello,

Toujours personne ?

Merci

Bonjour,

C’est surprenant, comment un backup pourrait se restaurer sur une aude bdd que celle où il était lors de la sauvegarde ?
Si je comprends bien, tu a installé Jeedom sur la db locale, tu a fais un backup, puis ensuite tu a modifié la config pour le déporter vers une db distante ? Dans ce cas, c’est normal, il faut que tu relance un nouveau backup à partir de la db distante.

(((Sinon, au pire, tu dois pouvoir dezip le backup, modifier le fichier core/confing/common.config.php, rezip le tout, et restaurer ce backup modifié, j’ai jamais testé par contre, mais ça devrait marcher…))) ça ne marchera pas je viens de voir que ce fichier est exclu du backup :sleepy:

Bonjour Pifou,

Merci pour ton aide.

Pas exactement, voila les steps :
1.Installation de jeedom classique (db local) → Ok
2. Modification du fichier /var/www/html/core/config/common.config.php avec les infos de ma db distante → ok
3. relance de l’installation php /var/www/html/install/install.php

A ce stade Jeedom tourne sur ma db distante. Il n’y a rien dessus car c’est une nouvelle installation.

  1. Je restaure un ancien backup → la db distante se vide et Jeedom se remet à tourner sur sa db local.

Cette procédure a toujours fonctionné.

J’ai aussi essayé de modifier le fichier backup mais ça marche pas.
Merci,
G

Pour moi, c’est normal, ton ancien backup il vient d’où ? d’une db locale ou distante ?

Tes 2 machines, c’est quoi des VM ? container docker ? Ou bien 2 machines physiques distinctes ? Moi je suis sous Docker et la DB est un container séparé de Jeedom, ça marche sans problème. Aussi, dans mon container jeedom il n’y a pas le package mysql-server donc il ne pourrait pas restaurer en local.

ok ça se tient, mais je comprends pas pourquoi j’ai tours réussi comme ça.

Je change ma question alors, comment puis-je migrer sur une db distante avec un backup Jeedom configuré avec une db local ?

J’ai déjà exploré la piste que tu as mentionné: dézippe du backup, modification du fichier core/confing/common.config.php, rezippe et restaure mais ça ne fonctionne pas… Comme tu as dit le fichier common.config.php est bypassé.

L’idée peut-être (pas encore testée), je fait un backup de la db jeedom local et je l’envoi sur ma db sql distante puis je modifie le fichier common.config.php. Ça pourrait être possible ?

Hello,

Dans install/restore.php, on voit que le choix d’une Bdd cible (local vs distante) se fait selon unix_socket :

(Ce code n’a pas changé depuis 5 ans)

Peut-être qu’il y a un unix_socket dans ton fichier common.config.php ?

Sinon, si tu as envie tester plus profondement, tu peux essayer de :

  • commenter les lignes 140 et 142-144 (forçant ainsi le restoration vers la BDD distante),
  • backup,
  • restore.

Pour debug, tu peux même rajouter avant la ligne 139 :

echo '--------> DEBUG BDD';
print_r($CONFIG);

Afin de t’assurer à la restauration des paramètres utilisés.

Bad

Top merci à vous deux je teste.

Alors non pas un unix_socket dans common.config.php.

global $CONFIG;
$CONFIG = array(
‹ db › => array(
‹ host › => ‹ localhost ›,
‹ port › => ‹ 3306 ›,
‹ dbname › => ‹ jeedom ›,
‹ username › => ‹ jeedom ›,
‹ password › => ‹ blablabla ›,
),
);

Est-ce qu’il y a une possibilité de migrer tout simplement de la db local vers la distante ? ou modifier un backup? Sachant que modifer common.config.php dans un backup n’est pas pris en compte.

Bonjour
Rapidement il faut :

  • installer jeedom avec dB local
  • restaurer ton backup (qui a été fait avec dB local si j’ai bien suivi)
  • faire un dump de la dB local
  • restorer le dump sur dB distante
  • reconfigurer le common.config.php pour qu’il pointe vers la dB distante
  • supprimer la dB local

Ya d’autres solutions mais je pense ça c’est la plus sur

Hello Loïc,

De ce que j’ai compris, @gsc a déjà sa bdd en externe parfaitement fonctionnel.

Le problème est au moment de la restauration : Jeedom restore dans la base locale et vide la base externe.

Mais @gsc, c’est très étonnant que dans le dump il y ait localhost plutôt que l’IP de ta bdd externe.

Ca explique la restoration locale, maintenant il faut chercher pourquoi localhost est positionné dans ce fichier au moment de la restoration.

Sur ton ancien système (donc dans la backup que tu restore), ta bdd était en local ou en distant ?

Bad

Je suis pas sûr que jeedom soit capable de restorer en distant dans tous les cas , d’où la méthode que je donne.

Le code que je cite plus haut a l’air de le prendre en compte en tout cas.

Oui mais jamais testé donc je préfère donner une méthode sur.

OK, on va debug ça avec @gsc et je ferai un PR pour le rendre fonctionnel en 4.4 si ce n’est pas le cas.

La methode de Loic fonctionne :slight_smile:

installer jeedom avec dB local
restaurer ton backup (qui a été fait avec dB local si j’ai bien suivi)
faire un dump de la dB local
restorer le dump sur dB distante
reconfigurer le common.config.php pour qu’il pointe vers la dB distante
supprimer la dB local

Je ne sais pas pk ca ne fonctionne plus comme avant mais j’ai une solution qui me convient, je restaure pas tous les jours …

oui Bad tu as raison :

De ce que j’ai compris, @gsc a déjà sa bdd en externe parfaitement fonctionnel.

Le problème est au moment de la restauration : Jeedom restore dans la base locale et vide la base externe.

Merci pour votre aide à tous en tout cas,
Je vous souhaite une bonne soiree,

Ok, je vais faire des tests de mon côté.

Tu peux juste préciser si le Jeedom où tu restores avant déjà la bdd en distant et si la bdd est distante dans la sauvegarde ?

Merci

Le backup est fait avec une db local.

Jeedom sur lequel je restore est vierge mais avec une db distante.

Si tu veux plus d’infos n’hésite pas,

Merci je vais regarder comme ça