还原备份时发生错误:discourse_functions.raise_discourse_voting_category_settings_readonly()不存在

您好,

我有一个使用我们的主实例 Discourse 3.4.0.beta1-dev 版本 633a19fcc09a41a31eadd176519483217b2ec241 创建的备份。

我想将此备份上传到一个本地实例,这是一个全新安装的 Discourse 3.4.0.beta1-dev 版本 2b577950af5b24ed0d32eecc4ab6475619998fba

这是日志,有什么建议的解决方法吗?

[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

您的本地实例上是否具有相同的插件集?

1 个赞

你好,

我没有,问题是未安装Post Voting Plugin。有趣的是,它并未在主站点上启用(只是默认安装),但我猜这足以导致错误。谢谢。

2 个赞

我在开发实例(我刚刚升级到 pg16 以获取最新的 pgvector,这导致之前的恢复失败)上也遇到了同样的错误,我刚刚 git pull 了。

我添加了投票(topic voting)和帖子投票(post voting)(topic voting 在源上)。

我的想法是

DROP table discourse_voting_category_settings;

但后来我需要添加 CASCADE,我犹豫了,然后尝试恢复到暂存环境。

在暂存站点上,如果我尝试恢复同一个数据库,我会得到这个:

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'

这似乎有所不同。我过去三周都忘了这件事,但从那以后,我们有几起备份在未安装帖子投票插件时恢复失败的案例。所以那肯定是个问题。

hotlinked_media_status 是 2022 年的核心表……所以那一定有什么不同。

./db/migrate/20220428094026_create_post_hotlinked_media.rb

(顺便说一句,我保留了过去 11 年所有问题的日记,但没有提到过这个问题)

2 个赞

嗯,我确保开发实例拥有生产站点上的所有插件,并已在那里恢复了备份!

但是暂存站点(不知何故缺少 Microsoft 身份验证插件,但那不可能是原因吧?!?!?!) 仍然存在 EXCEPTION: psql failed: ERROR: type \"hotlinked_media_status\" already exists 问题。

但如果我搜索一下:

看起来之前类似的问题曾经被修复过。。。

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