更新问题:论坛损坏

我们也看到了这种行为,这也是一个标准的 Discourse 安装,多年来一直运行良好。

我的理论是数据库迁移存在问题,该迁移尝试添加一个 Postgres 扩展;从 ./launcher rebuild 期间的堆栈跟踪中,我看到

/var/www/discourse/db/migrate/20220304162250_enable_unaccent_extension.rb:5:in change’`

我想知道这个迁移是否应该遵循与例如 db/migrate/20120924182000_add_hstore_extension.rb 相同的格式?

I, [2022-04-02T12:49:18.895537 #1] INFO -- : su postgres -c ‘psql discourse -c "create extension if not exists pg_trgm;"’
NOTICE: extension “pg_trgm” already exists, skipping
I, [2022-04-02T12:49:18.984635 #1] INFO – : CREATE EXTENSION`

@RGJ 你对尝试这个更改有什么建议吗?

1 个赞

不,enable_extension 会执行相同操作

这并不让我惊讶——这几乎是遇到此问题的所有人共有的情况。您是否运行了一个(外部)Postgres 数据库,该数据库已有一段时间未更新,或者具有不同的访问权限?

1 个赞

这里遇到了完全相同的问题。标准安装,运行多年一直正常,现在升级时出现同样的错误。没有运行外部数据库。

嗨 Erick,

由于未知原因,OP 删除了 PG13 并安装了 PG10(参见其 pastebin),你可能遇到了其他问题,能否在回复中(或 Pastebin 上)发布你完整的输出,包括你的命令?

您好,

抱歉回复晚了,上周以来我一直很忙。

多亏了您和Steven,问题已经解决了,非常感谢您的帮助。

我向您解释一下发生的情况,因为实际上,有一个问题导致了其他问题,要快速解决所有问题并不容易。

首先,服务器的Postgres版本不再与论坛的最新版本兼容。我使用的是10版本。

我们必须发现这个问题并解决它。为了解决这个问题,您必须更新Postgres,但服务器的磁盘空间不足。您至少需要论坛容量的两倍,因为它会复制所有内容。所以我不得不增加论坛的磁盘空间。一旦这一切都设置好了,Postgres更新就很顺利,论坛更新也很顺利。有一些惊险时刻,尤其是在备份的可靠性方面,但之后一切都很好。

以下是操作流程:

  1. 编辑app.yml文件,并将postgres10.template.yml行更改为postgres.template.yml
  2. 保存更改
  3. 增加服务器磁盘空间
  4. 更新Postgres
  5. 更新论坛

希望这对处于我这种情况的其他人有所帮助。

再见

3 个赞

我也遇到了同样的问题!我认为这可能困扰了所有将 Postgres 冻结在 10.x 版本的人,因为他们之前没有足够的磁盘空间进行升级。

我通过运行以下命令解决了这个问题:

./launcher enter db

然后运行:

su postgres -c 'psql discourse -c "create extension if not exists unaccent;"'

我无法运行“enter app”,因为应用程序已损坏。

1 个赞

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