Une erreur s'est produite lors de la restauration à partir de la sauvegarde : discourse_functions.raise_discourse_voting_category_settings_readonly() n'existe pas

Bonjour,

J’ai une sauvegarde créée à l’aide de notre instance principale Discourse version 3.4.0.beta1-dev 633a19fcc09a41a31eadd176519483217b2ec241

Je souhaite téléverser cette sauvegarde sur une instance locale, il s’agit d’une nouvelle installation exécutant la version 3.4.0.beta1-dev de Discourse 2b577950af5b24ed0d32eecc4ab6475619998fba

Voici le journal, des suggestions pour une solution de contournement ?

[2024-08-03 16:45:29] CREATE INDEX
[2024-08-03 16:45:29] CREATE INDEX
[2024-08-03 16:45:29] ERROR:  function discourse_functions.raise_discourse_voting_category_settings_readonly() does not exist
[2024-08-03 16:45:29] EXCEPTION: psql failed: ERROR:  function discourse_functions.raise_discourse_voting_category_settings_readonly() does not exist

Avez-vous le même ensemble de plugins sur votre instance locale ?

1 « J'aime »

Bonjour,

Je ne l’ai pas fait, le problème était que le Post Voting Plugin n’était pas installé. Fait intéressant, il n’était pas activé sur le site principal (juste installé par défaut) mais je suppose que cela suffisait à causer l’erreur. Merci.

2 « J'aime »

J’obtiens la même erreur sur une instance de développement (où je viens de passer à pg16 pour obtenir la dernière version de pgvector qui causait cet échec de restauration plus tôt) que je viens de git puller.

J’ai ajouté à la fois le vote par publication et le vote par sujet (le vote par sujet était sur la source).

Mon inclination était de

 DROP table discourse_voting_category_settings;

Mais j’ai ensuite eu besoin d’ajouter CASCADE et j’ai eu peur et j’ai essayé de restaurer sur staging.

Sur un site staging, si j’essaie de restaurer la même base de données, j’obtiens ceci :

ERROR:  type "hotlinked_media_status" already exists
EXCEPTION: psql failed: ERROR:  type "hotlinked_media_status" already exists
/var/www/discourse/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:51:in `run'

Cela semble différent. Je l’avais oublié ces trois dernières semaines, mais depuis, nous avons eu quelques cas de sauvegardes qui n’ont pas pu être restaurées lorsque le plugin de vote de publication n’était pas installé. C’est donc une chose certaine.

Mais hotlinked_media_status est une table principale datant de 2022… donc ça doit être quelque chose de différent.

./db/migrate/20220428094026_create_post_hotlinked_media.rb

(Au fait, je tiens un journal de tous les problèmes des 11 dernières années et je n’ai aucune mention de celui-ci)

2 « J'aime »

Eh bien, j’ai veillé à ce que l’instance de développement ait tous les plugins du site de production et j’y ai restauré la sauvegarde !

Mais le site de staging, (qui manque du plugin d’authentification Microsoft pour une raison quelconque, mais ça ne peut pas être ça, n’est-ce pas ?!?!?!?) a toujours le problème EXCEPTION: psql failed: ERROR: type "hotlinked_media_status" already exists.

Mais si seulement je cherchais :

On dirait que quelque chose de similaire a été corrigé une fois. . .

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.