Bonjour,
Je tente de configurer un serveur Discourse hébergé sur une paire de serveurs devant agir en redondance (failover). Pour cela, ils doivent accéder à la même base de données. J’ai déjà un serveur PostgreSQL fonctionnant ailleurs, j’ai donc suivi les instructions ici et la connexion semble correcte. Cependant, lorsque j’essaie de reconstruire l’application, je rencontre l’erreur suivante :
I, [2019-07-23T17:33:20.623719 #14] INFO – : > cd /var/www/discourse && su discourse -c ‘bundle exec rake
db:migrate’
rake aborted!
StandardError: Une erreur s’est produite, cette migration et toutes les suivantes ont été annulées :
PG::UndefinedTable: ERREUR : la relation “selected” n’existe pas
LINE 7: OR (t.closed AND tsp.execute_at >= now())
^
: WITH selected AS (
SELECT tsp.id
FROM topic_status_updates tsp
JOIN topics t
ON t.id = tsp.topic_id
WHERE tsp.execute_at < now()
OR (t.closed AND tsp.execute_at >= now())
)
UPDATE topic_status_updates
SET deleted_at = now(), deleted_by_id = -1
WHERE id in (SELECT * FROM selected)
Lorsque je consulte la base de données Discourse, aucune table nommée ‘selected’ n’est présente. Que puis-je faire pour résoudre ce problème ? J’avais une instance fonctionnelle lorsque je l’exécutais localement sur un seul serveur ; cela n’a commencé à se produire qu’après avoir déplacé la base de données.