真是碰到一个问题解决一个问题,刚刚创建话题时提示 500 错误,然后再日志中找到了如下的错误:
ActiveRecord::StatementInvalid (PG::IndexCorrupted: ERROR: right sibling's left-link doesn't match: block 854 links to 1392 instead of expected 1 in index "index_users_on_secure_identifier"
感觉这次搬家把数据库搬崩溃了,于是尝试重建一下索引:
cd /var/discourse
./launcher enter app
rails dbconsole
discourse=> REINDEX SCHEMA CONCURRENTLY public;
重建索引之后,发布成功。
对于一个没接触过 Rails 和 PostgreSQL 的野生程序员,我尽力了啊。
另外,解决问题的流程大概是这样的:
- 发现问题
- 查询错误日志
- 检索 discourse 官方交流论坛
- 用英文
- 别用中文
- 确保有备份 & 不断尝试
- 记录下来,以防再次发生重复的问题