|
|
@@ -1,48 +0,0 @@ |
|
|
|
defmodule Pleroma.Repo.Migrations.UpdateStatusReplyCount do |
|
|
|
use Ecto.Migration |
|
|
|
|
|
|
|
@public "https://www.w3.org/ns/activitystreams#Public" |
|
|
|
|
|
|
|
def up do |
|
|
|
execute(""" |
|
|
|
WITH reply_count AS ( |
|
|
|
SELECT count(*) AS count, data->>'inReplyTo' AS ap_id |
|
|
|
FROM objects |
|
|
|
WHERE |
|
|
|
data->>'inReplyTo' IS NOT NULL AND |
|
|
|
data->>'type' = 'Note' AND ( |
|
|
|
data->'cc' ? '#{@public}' OR |
|
|
|
data->'to' ? '#{@public}') |
|
|
|
GROUP BY data->>'inReplyTo' |
|
|
|
) |
|
|
|
UPDATE objects AS o |
|
|
|
SET "data" = jsonb_set(o.data, '{repliesCount}', reply_count.count::varchar::jsonb, true) |
|
|
|
FROM reply_count |
|
|
|
WHERE reply_count.ap_id = o.data->>'id'; |
|
|
|
""") |
|
|
|
|
|
|
|
execute(""" |
|
|
|
WITH reply_count AS (SELECT |
|
|
|
count(*) as count, |
|
|
|
data->'object'->>'inReplyTo' AS ap_id |
|
|
|
FROM |
|
|
|
activities |
|
|
|
WHERE |
|
|
|
data->'object'->>'inReplyTo' IS NOT NULL AND |
|
|
|
data->'object'->>'type' = 'Note' AND ( |
|
|
|
data->'object'->'cc' ? '#{@public}' OR |
|
|
|
data->'object'->'to' ? '#{@public}') |
|
|
|
GROUP BY |
|
|
|
data->'object'->>'inReplyTo' |
|
|
|
) |
|
|
|
UPDATE activities AS a |
|
|
|
SET "data" = jsonb_set(a.data, '{object, repliesCount}', reply_count.count::varchar::jsonb, true) |
|
|
|
FROM reply_count |
|
|
|
WHERE reply_count.ap_id = a.data->'object'->>'id'; |
|
|
|
""") |
|
|
|
end |
|
|
|
|
|
|
|
def down do |
|
|
|
:noop |
|
|
|
end |
|
|
|
end |