你好,
我正在尝试设置一个 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: 发生了一个错误,此迁移及之后的所有迁移均被取消:
PG::UndefinedTable: 错误:关系 “selected” 不存在
第 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’ 的表。我该如何解决这个问题?之前我在单台服务器上本地部署时,实例一直正常运行;只有在将数据库迁移到另一台服务器后,问题才开始出现。