parent
b028b0f97d
commit
568e348588
@ -0,0 +1,48 @@
|
|||||||
|
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
|
Loading…
Reference in new issue