Discoruse 附件数量备份前后需要对比

Discoruse 备份恢复有个比较重要的问题就是检查附件表的数量。

可能在恢复成功后有数据差异,这回导致一些内容的附件不显示。

尽管这些附件已经在 S3 的存储了。

插入附件

在上传一个附件之前,先看看数量:

discourse=# select count(*) from uploads;
 count 
-------
 10342
(1 row)

随后我们再次运行查看:

discourse=# select count(*) from uploads;
 count 
-------
 10343
(1 row)

discourse=# 

表数据会添加 1。

查看数据。

  id   | user_id |    original_filename    | filesize | width | height |                                                                               url                                                                                |        created_at         |         updated_at         |                   sha1                   | origin | retain_hours | extension | thumbnail_width | thumbnail_height |               etag               | secure | access_control_post_id | original_sha1 | verification_status | animated | security_last_changed_at | security_last_changed_reason | dominant_color 
-------+---------+-------------------------+----------+-------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+----------------------------+------------------------------------------+--------+--------------+-----------+-----------------+------------------+----------------------------------+--------+------------------------+---------------+---------------------+----------+--------------------------+------------------------------+----------------
 18292 |     193 | 2025-03-12_10-38-16.jpg |    20757 |   451 |    204 | //com-isharkfly-discourse.s3.dualstack.us-east-2.amazonaws.com/com-isharkfly-www/discourse-uploads/original/3X/8/b/8b86522f6275fdbcf6df9fdb293db2538059e5c8.jpeg | 2025-03-12 14:38:49.22769 | 2025-03-12 14:38:49.596361 | 8b86522f6275fdbcf6df9fdb293db2538059e5c8 |        |              | jpeg      |             451 |              204 | 49b0e657d22f36414bfc5246f2c35d5f | f      |                        |               |                   1 | f        |                          |                              | 050505
(1 row)

同时表: upload_references 也会添加一条记录。

discourse=# select * from upload_references order by id desc limit 1;
   id   | upload_id | target_type | target_id |         created_at         |         updated_at         
--------+-----------+-------------+-----------+----------------------------+----------------------------
 199980 |     18292 | Draft       |     13776 | 2025-03-12 14:38:51.750305 | 2025-03-12 14:38:51.750329
(1 row)

discourse=# 

当主题的内容发布后,数据将会从 Draft 修改成 post。

但 ID 会改变,应该是 draft 的版本不同原因。

其中对应的 Id 为 Posts Id。