Dans les dernières notes de mise à jour (3.2.0.beta1), j’ai remarqué le plugin discourse-ai que je n’avais pas vu auparavant, j’ai donc tenté d’ajouter ce plugin et de mettre à jour mon instance discourse en même temps.
Comme mentionné dans le titre, je rencontre actuellement une erreur lors du bootstrap où rake db:migrate ne parvient pas à créer un index unique sur theme_field_id. Voici quelques détails sur la façon dont j’en suis arrivé là…
Tentative de mise à niveau initiale (erreur patch-package)
J’utilise une installation avec des conteneurs séparés, donc j’ai :
-
Modifié mon fichier
web_only.ymlpour ajouter le nouveau plugindiscourse-aipar ex. Ajout d'une ligne supplémentaire aux hooks des plugins
## Les plugins vont ici ## voir https://meta.discourse.org/t/19157 pour les détails hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git clone https://github.com/discourse/discourse-voting.git - sudo -E -u discourse git clone https://github.com/discourse/discourse-ai.git -
Exécuté
./launcher bootstrap web_only
Cela a échoué avec un message indiquant que patch-package était introuvable.
Git Pull → bootstrap (erreur pg-vector)
J’ai pensé qu’il valait mieux m’assurer d’avoir les dernières mises à jour du lanceur avant de réessayer :
- J’ai exécuté un
git pullpour m’assurer d’avoir les dernières mises à jour liées au lanceur - J’ai réexécuté
./launcher bootstrap web_only
Cette fois, j’ai reçu des messages d’erreur liés à pg-vector.
J’ai noté mes versions PostgreSQL pour mes archives lorsque j’ai décidé de revisiter le plugin discourse-ai.
- web_only :
- client :
psql (PostgreSQL) 13.10 (Debian 13.10-1.pgdg110+1)
- client :
- data :
- serveur :
PostgreSQL 13.9 (Debian 13.9-1.pgdg110+1)
- serveur :
Suppression du plugin discourse-ai → Bootstrap
J’ai ensuite supprimé le plugin discourse-ai du fichier web_only.yml et j’ai relancé un bootstrap.
À ma grande surprise, je voyais toujours des erreurs, mais cette fois, elles semblaient liées à rake db:migrate qui ne parvenait pas à créer un index unique index_javascript_caches_on_theme_field_id avec le détail : Key (theme_field_id)=(3) is duplicated.
Votre aide ? 
C’est pourquoi je viens chercher de l’aide. J’ai pensé faire une pause et recueillir les avis de la communauté avant de creuser davantage, au cas où quelqu’un d’autre aurait déjà rencontré ce problème.
Pour référence, j’ai installé la version 3.2.0.beta1-dev (993ed10cf0 ~ 9 août).
Et bien que je ne pense pas que ce soit lié, je pense que cela ne fera pas de mal de mentionner que j’ai migré entre des machines hôtes au début de cette année… bien que j’aie effectué plusieurs mises à jour de Discourse via l’interface d’administration depuis lors.
Approche de migration
De mémoire, il s’agissait essentiellement de mettre à niveau l’instance source vers la dernière version de Discourse, d’installer Discourse sur le nouvel hôte, de geler la source, de faire une sauvegarde de Discourse sur la source, de synchroniser les images/etc entre les hôtes, puis de restaurer la sauvegarde sur le nouvel hôte.