再次您好——我用一种笨拙的方式,在数据探索器中尝试了以下查询,但在“员工”类别中未找到任何已删除消息的相关结果:
SELECT *
FROM topics
WHERE deleted_at is not NULL
AND category_id = 3
甚至在所有类别中也没有结果:
SELECT *
FROM topics
WHERE deleted_at is not NULL
因此我想知道,如果这些主题并未被删除,是否还有其他情况发生?是否有其他方法可以检测这些缺失的主题?或者系统帖子是否根本未存储在 topics 表中?
nathank
(Nathan Kershaw)
22
很高兴看到你的 Data Explorer 技能!
这些主题确实存在于 topics 表中。
试试这个:
SELECT id, title, deleted_at
FROM topics
Order by id
Limit 10
你应该会得到类似这样的结果:
附注:你可能还需要修改 deleted_by_id。
谢谢 Nathan——这是个很好的建议。
不过,在被删除的主题中找到的最低主题 ID 是 20
nathank
(Nathan Kershaw)
25
你有 1 到 10 中的任何一个吗?看起来没有。
也许从头重建网站,然后以某种方式合并数据库才是前进的方向。或者去研究一下那个 PostgreSQL!
你好 Nathan - 这确实列出了一批已删除的主题,但员工分类中缺失的那些预置主题并未包含在内。
我在想,如果连那些缺失的预置帖子存在的痕迹都没有,我是否还能通过修改数据库来撤销删除操作?有没有办法在现有安装上重新运行设置向导,以触发创建那些预置帖子?设置向导第一次运行时是否有可能遗漏了它们?(也许我当时误选了“跳过”选项?)
是否有可能在我设置时,当时使用的 Discourse 版本存在某个漏洞?
如果那些缺失的预置帖子甚至没有被标记为删除,而是根本不存在,那么当我将备份的数据库恢复到全新的 Discourse 安装时,这些缺失内容是否不会传播或覆盖任何现有数据?还是说,初始数据库会被完全移除,并由备份(包含其所有缺陷)取而代之?
riking
(Kane York)
28
另一个可以尝试的方法是,从 site_settings 表中选择 tos_topic_id、guidelines_topic_id 和 privacy_topic_id。
抱歉,使用以下 SQL:
SELECT value
FROM site_settings
WHERE name = 'tos_topic_id'
Paul_King
(Paul King)
29
谢谢 Kane
我可能操作有误,但对我来说:
SELECT tos_topic_id, site_settings
或者(不确定哪个是正确的,如果有的话)
SELECT tos_topic_id
FROM
site_settings
返回了以下错误:
PG::UndefinedColumn: ERROR: column “tos_topic_id” does not exist
LINE 7: SELECT tos_topic_id, site_settings
我认为这意味着不存在 ‘tos_topic_id’?
guidelines_topic_id 和 privacy_topic_id 也有类似的结果。
Paul_King
(Paul King)
31
太感谢了!!这正是我一直在寻找的——不过遗憾的是,对我来说,最后的
rake topics:update_static[en]
命令报错了——我不确定原因,也不知道该如何处理。
gerhard
(Gerhard Schlager)
32
错误是什么?(如果您需要帮助,发布错误信息总是一个好主意。
)
2 个赞
@Paul_King 我在运行 update_static 时也遇到了错误,但我的常见问题页面已经恢复了!
@gerhard 错误如下,我猜 Paul 遇到的也是一样的。
[5] pry(main)> rake topics:update_static[zh_CN]
NameError: 未定义的局部变量或方法 `update_static' for main:Object
1 个赞
gerhard
(Gerhard Schlager)
34
你在 Rails 控制台中运行 rake 任务,这是行不通的。但当你正确运行时,你会发现该 rake 任务已经不存在了。
相反,我建议使用 更新预置分类和主题 中描述的“手动更新”方法。我已相应地修改了 How to regenerate FAQ and TOS pages? - #2 by gerhard 中的步骤。
2 个赞
Paul_King
(Paul King)
35
有没有办法让注册对话框中的服务条款和隐私政策链接生效?上述方法似乎都未能帮到我,尽管我可以重新创建未链接的服务条款和隐私政策主题。
我不确定这些主题最初是如何丢失的。我原本以为是自己不小心误删了它们,但根据我的阅读,在用户界面中似乎根本不应该出现这种情况——而且既然其他人也遇到了类似问题,这是否可能涉及某个潜在的 bug?
nathank
(Nathan Kershaw)
36
2 个赞
Paul_King
(Paul King)
37
太棒了!感谢提醒,Nathan。
确认这确实奏效了!
如果你希望新注册对话框中的链接能正常工作,还需要将已发布帖子生成的 URL 复制并粘贴到“设置/法律”中对应的字段里,就像它们是“外部托管”的服务条款和隐私政策页面一样。(不确定为什么 FAQ 被排除在注册对话框之外,但你也可以在这里设置该 URL——不过如果该字段未包含在注册对话框中,尚不清楚其用途或是否有其他地方链接到它?)
这是一个可能在未来网站迁移到其他 URL 时失效的临时解决方案,但目前至少可以让用户在注册前选择查看服务条款等具体内容,非常实用!
1 个赞