# Erreur de mise à niveau de Discourse v3.0.6 à v3.1.1 - méthode indéfinie \`register\_bookmarkable' pour Bookmark:Class

**URL:** https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264
**Category:** Self-hosting
**Tags:** unsupported-install
**Created:** [Octobre 6, 2023, 7:49 UTC](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264 "2023-10-06T07:49:15Z")
**Posts on this page:** 7
**Page:** 2

<div class="post-metadata">

### Author: ![stevejr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stevejr/32/292622_2.png) [@stevejr](https://meta.discourse.org/u/stevejr)
#### Post date: [Février 22, 2024, 5:53 UTC](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264/21 "2024-02-22T17:53:57Z")

</div>

Avez-vous essayé une nouvelle installation sans restauration, mais en vous connectant à votre base de données backend existante ?

Je suppose que cela signifie potentiellement perdre tous les paramètres effectués dans l’interface utilisateur qui ne sont pas sauvegardés dans la base de données ? Je ne suis pas sûr de ce qui d’autre est sauvegardé et restauré.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [Février 22, 2024, 6:20 UTC](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264/22 "2024-02-22T18:20:57Z")

</div>

> [@manning-ncsa](#):
>
> approche d’une nouvelle installation suivie d’une restauration à partir d’une sauvegarde, mais elle échoue en raison de ce qui semble être des bogues dans la migration de la base de données.

Peut-être devriez-vous envisager de passer de Bitnami à une installation standard réelle. Vos problèmes ne sont pas causés par des « bogues dans la migration de la base de données », ils sont spécifiques à Bitnami.

---

<div class="post-metadata">

### Author: ![stevejr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stevejr/32/292622_2.png) [@stevejr](https://meta.discourse.org/u/stevejr)
#### Post date: [Février 22, 2024, 6:33 UTC](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264/23 "2024-02-22T18:33:10Z")

</div>

Existe-t-il une installation standard pour Kubernetes ?

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [Février 22, 2024, 6:47 UTC](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264/24 "2024-02-22T18:47:05Z")

</div>

Kubernetes permet-il une installation manuelle ? Si oui, vous pourriez faire une installation standard de cette façon. (Je n’ai jamais essayé, donc je ne sais pas comment fonctionne Kubernetes)

---

<div class="post-metadata">

### Author: ![manning-ncsa](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manning-ncsa/32/282163_2.png) [@manning-ncsa](https://meta.discourse.org/u/manning-ncsa)
#### Post date: [Février 22, 2024, 8:29 UTC](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264/25 "2024-02-22T20:29:00Z")

</div>

> [@RGJ](#):
>
> Peut-être devriez-vous envisager de vous éloigner de Bitnami pour une [installation standard](https://meta.discourse.org/t/142537?silent=true). Vos problèmes ne sont pas causés par des « bugs dans la migration de la base de données », ils sont spécifiques à Bitnami.

J’entends parfaitement les avantages de l’installation standard et la nature indépendante et non sanctionnée du chart Helm de Bitnami. Je n’avais pas l’intention de laisser entendre que la faute incombait à Discourse lui-même. Mon choix d’utiliser Bitnami continue de dépendre d’un calcul comparant le coût de dépannage des problèmes avec le chart Bitnami et le coût de développement de mon propre chart Helm équivalent basé sur l’installation officiellement prise en charge, puis de dépannage des problèmes avec celui-ci.

> [@stevejr](#):
>
> Avez-vous essayé une nouvelle installation sans restauration, mais en vous connectant à votre base de données backend existante ?

Je l’ai envisagé, mais j’essaie d’éviter les modifications des paramètres par défaut du chart pour rester « sur le chemin principal ». Cela dit, j’ai tenté de mettre à niveau uniquement le serveur Discourse vers la version 3.2.0 en remplaçant la balise d’image du déploiement, tout en conservant la base de données existante, pour voir si la migration réussirait ; cela a toujours échoué.

J’ai essayé de supprimer et de restaurer manuellement la base de données via `kubectl exec` dans le conteneur postgres en utilisant le fichier de vidage SQL généré par Discourse lui-même, mais cela échoue avec l’erreur concernant la table `sidebar_sections`. Plus récemment, j’ai créé une nouvelle VM et suivi la méthode d’installation standard pour installer Discourse v3.3.0. Lorsque j’ai tenté une restauration de sauvegarde, la même erreur s’est produite.

Ma conclusion est que, bien que l’archive de sauvegarde de production ait été générée par Discourse lui-même, la structure de la base de données de mon instance de production v3.0.6 est d’une manière ou d’une autre différente de ce que Discourse attend, provoquant des erreurs de migration. Si tel est le cas, je suis pessimiste quant à mes options. La seule idée que j’ai pour le moment est de commencer à modifier le fichier de vidage SQL dans l’archive de sauvegarde pour supprimer les tables qui causent les erreurs `DuplicateTable` lors de l’étape de migration de la base de données du processus de restauration.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [Février 23, 2024, 9:44 UTC](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264/26 "2024-02-23T21:44:03Z")

</div>

> [@manning-ncsa](#):
>
> Mon choix d’utiliser Bitnami continue de dépendre d’un calcul comparant le coût de dépannage des problèmes avec le chart Bitnami et le coût de développement de mon propre chart Helm équivalent basé sur l’installation officiellement prise en charge, puis de dépannage des problèmes avec celui-ci.

Si vous souhaitez utiliser les Helm Charts de Bitnami, vous devez utiliser leur support.

---

<div class="post-metadata">

### Author: ![manning-ncsa](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manning-ncsa/32/282163_2.png) [@manning-ncsa](https://meta.discourse.org/u/manning-ncsa)
#### Post date: [Mars 4, 2024, 6:50 UTC](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264/27 "2024-03-04T18:50:55Z")

</div>

Dans l’espoir que cela épargne à quelqu’un des heures de tâtonnement comme moi dans cette situation, voici le processus qui m’a finalement permis de passer de Discourse v3.0.6 à v3.2.0 dans le contexte de l’utilisation du chart Helm Bitnami (v11 à v12). Bien que d’autres mises en garde ne devraient pas être nécessaires compte tenu des commentaires ci-dessus, ce problème est dû à un bug dans le chart Helm de Bitnami et leurs images personnalisées ; le problème n’affecte pas les versions officielles de Discourse.

Les instructions ci-dessous montrent comment naviguer dans la mise à niveau. Le « site de production » est une version du site Discourse à mettre à niveau déployée via le chart Helm, et le « site de migration » fait référence à une version temporaire du chart déployée en parallèle dans l’espace de noms `discourse-dev`.

### Site de production

1. Mettez le forum de production en mode lecture seule dans le panneau d’administration des sauvegardes /admin/backups.
2. Effectuez une sauvegarde à l’aide du panneau d’administration des sauvegardes. Téléchargez l’archive de sauvegarde localement.

### Site de migration

1. Installez une nouvelle instance du chart Bitnami v12.6.2 (Discourse v3.2.0). Réduisez le déploiement du serveur Discourse à zéro.

2. Créez le fichier SQL `db_init.sql` :

3. Copiez le fichier dans le pod de base de données et exécutez-le :

4. Extrayez l’archive de sauvegarde, copiez le fichier de vidage SQL dans le pod de base de données et appliquez-le :

5. Lancez le pod Discourse.

6. Surveillez les logs et supprimez les tables qui empêchent la mise à niveau :

7. Regardez pendant que les migrations de base de données échouent et supprimez manuellement les tables concernées jusqu’à ce que les migrations réussissent :

8. Restaurez la sauvegarde du dossier uploads :

9. Pour une raison quelconque, les plugins ne se sont pas téléchargés et installés automatiquement. Faites-le manuellement et vérifiez la fonctionnalité des plugins.

10. Créez une sauvegarde du site nouvellement restauré à l’aide du panneau d’administration des sauvegardes.

### Site de production

1. Supprimez le déploiement d’origine et nettoyez les PV/PVC.
2. Installez une nouvelle instance du chart Bitnami v12.6.2 (Discourse v3.2.0).
3. Utilisez `https://$BASE_URL/u/admin-login` pour vous connecter via le lien par e-mail.
4. Téléchargez et restaurez l’archive de sauvegarde à l’aide du panneau d’administration des sauvegardes.

[Page précédente](https://meta.discourse.org/t/discourse-v3-0-6-to-v3-1-1-upgrade-error-undefined-method-register-bookmarkable-for-bookmark-class/281264.md?page=1)
