docs: add post-upgrade query to backfill following feed
This commit is contained in:
parent
fb7ac68ece
commit
158cd3649d
1 changed files with 42 additions and 0 deletions
|
@ -14,3 +14,45 @@ Any data uploaded, whether shared via post or not, will be publicly accessible.
|
||||||
5. Please disable ad blockers. Some servers may rely on advertising revenue to cover operating costs. Additionally, ad blockers can mistakenly block content and features unrelated to ads, potentially causing issues with the client's functionality and preventing normal use of Sharkey. Therefore, we recommend turning off ad blockers and similar features when using Sharkey.
|
5. Please disable ad blockers. Some servers may rely on advertising revenue to cover operating costs. Additionally, ad blockers can mistakenly block content and features unrelated to ads, potentially causing issues with the client's functionality and preventing normal use of Sharkey. Therefore, we recommend turning off ad blockers and similar features when using Sharkey.
|
||||||
|
|
||||||
Please understand these points and enjoy using the service.
|
Please understand these points and enjoy using the service.
|
||||||
|
|
||||||
|
# Upgrade Notes
|
||||||
|
|
||||||
|
## 2024.9.0
|
||||||
|
|
||||||
|
### Following Feed
|
||||||
|
|
||||||
|
When upgrading an existing instance to version 2024.9.0, the Following Feed will initially be empty.
|
||||||
|
The feed will gradually fill as new posts federate, but it may be desirable to back-fill the feed with existing data.
|
||||||
|
This database script will populate the feed with the latest post of each type for all users, ensuring that data is fully populated after the update.
|
||||||
|
Run this after migrations but before starting the instance.
|
||||||
|
Warning: the script may take a long time to execute!
|
||||||
|
|
||||||
|
```postgresql
|
||||||
|
INSERT INTO latest_note (user_id, note_id, is_public, is_reply, is_quote)
|
||||||
|
SELECT
|
||||||
|
"userId" as user_id,
|
||||||
|
id as note_id,
|
||||||
|
visibility = 'public' AS is_public,
|
||||||
|
"replyId" IS NOT NULL AS is_reply,
|
||||||
|
(
|
||||||
|
"renoteId" IS NOT NULL
|
||||||
|
AND (
|
||||||
|
text IS NOT NULL
|
||||||
|
OR cw IS NOT NULL
|
||||||
|
OR "replyId" IS NOT NULL
|
||||||
|
OR "hasPoll"
|
||||||
|
OR "fileIds" != '{}'
|
||||||
|
)
|
||||||
|
) AS is_quote
|
||||||
|
FROM note
|
||||||
|
WHERE ( -- Exclude pure renotes (boosts)
|
||||||
|
"renoteId" IS NULL
|
||||||
|
OR text IS NOT NULL
|
||||||
|
OR cw IS NOT NULL
|
||||||
|
OR "replyId" IS NOT NULL
|
||||||
|
OR "hasPoll"
|
||||||
|
OR "fileIds" != '{}'
|
||||||
|
)
|
||||||
|
ORDER BY id DESC -- This part is very important: it ensures that we only load the *latest* notes of each type. Do not remove it!
|
||||||
|
ON CONFLICT DO NOTHING; -- Any conflicts are guaranteed to be older notes that we can ignore.
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in a new issue