こんにちは、
フェールオーバーペアとして機能する2台のサーバーからホストされるDiscourseサーバーをセットアップしようとしています。そのためには、両方のサーバーが同じデータベースと通信する必要があります。すでに別の場所で動作しているPostgreSQLサーバーがあるため、こちらの指示に従って設定しましたが、接続は問題ないようです。しかし、アプリを再構築しようとすると、以下のエラーが発生します。
I, [2019-07-23T17:33:20.623719 #14] INFO – : > cd /var/www/discourse && su discourse -c ‘bundle exec rake
db:migrate’
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation “selected” does not exist
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)
Discourseデータベースを確認すると、「selected」というテーブルが存在しません。この問題を解決するにはどうすればよいでしょうか?以前は単一のサーバー上でローカルにインスタンスを動作させていたときは問題なく動いていました。データベースを移行したことが原因でこのエラーが発生するようになりました。