Voici un cas que je n’arrive pas à résoudre, malgré de nombreuses installations et migrations Discourse parfaitement réussies.
Contexte :
Nous avions Discourse qui fonctionnait correctement dans un conteneur Docker et nous travaillions sur quelques subtilités de la base de données PostgreSQL.
Le problème est survenu lorsque nous n’étions pas satisfaits des résultats de la régénération des publications brutes ; rien ne fonctionnait comme prévu. Nous avons donc décidé de supprimer la base de données postgres et de la recréer, mais l’application continuait à afficher diverses erreurs de permissions, etc.
Ensuite, nous avons décidé de « passer à la vitesse supérieure » et de tout détruire dans un style « tant pis » ; nous sommes donc allés directement dans postgres (sachant que cela ne se passerait probablement pas bien, mais voulant essayer) et avons supprimé tous les sujets et toutes les publications de la base de données (DELETE FROM topics; DELETE FROM posts;). Cela a fonctionné dans une certaine mesure, mais nous n’étions pas satisfaits des résultats (expérience terminée). Nous avons donc décidé de reconstruire Discourse à partir de zéro, en déplaçant l’ancien répertoire /var/discourse et en effectuant un git pull pour repartir sur de nouvelles bases.
Le problème
Lorsque nous construisons entièrement un nouveau environnement à partir d’un git pull, l’installation fonctionne bien jusqu’à l’étape où nous accédons au site pour créer la connexion administrateur.
Lorsque nous nous sommes rendus sur la page de connexion administrateur pour une nouvelle installation, c’est l’ancien site que nous avions détruit qui s’est affiché ! Cela nous a surpris.
Nous avons donc décidé d’entrer dans cette nouvelle application et de supprimer toutes les tables Discourse de la base de données, ce que nous avons fait. Mais, surprise : lorsque nous avons reconstruit l’application à nouveau, ce n’était pas un site neuf, mais le même site cassé que précédemment.
Nous avons donc supprimé tous les répertoires /var/*discourse* et supprimé toutes les images Docker, pensant que cela garantirait un environnement totalement propre, puis avons recommencé depuis le début en effectuant un git pull vers /var/discourse et en construisant à partir de ce que nous pensions être zéro absolu. Mais surprise : l’ancien site est toujours là.
En nous demandant : « Comment est-ce possible ? »…
Nous avons exécuté ps aux | grep postgres en dehors du conteneur Docker et avons remarqué que postgres existait en dehors du conteneur (ce qui était une surprise, car nous pensions à tort que l’installation Docker de Discourse se trouvait entièrement dans le conteneur). Nous avons ensuite tenté de trouver où effectuer le nettoyage, mais sans succès.
Nous avons cherché jusqu’à ce que les liens Google deviennent violets, avons essayé tellement de choses… mais nous n’arrivons pas à obtenir une installation propre de Discourse.
Pensant qu’il nous manquait quelque chose, nous avons pris un nouveau serveur sur lequel Discourse n'avait jamais été installé, nous y avons installé Discourse à partir de zéro, et cela a fonctionné parfaitement comme d’habitude (sur un autre serveur).
La question
Ma question est donc la suivante : lorsqu’une installation a complètement déraillé (par tous les moyens), comment pouvons-nous remettre le serveur, y compris PostgreSQL, à zéro afin que ce problème disparaisse et que nous puissions procéder à une toute nouvelle installation propre ?
Désolé pour un post aussi long, alors que la question aurait peut-être suffi pour obtenir de l’aide.
Merci.