|
|
@@ -0,0 +1,53 @@ |
|
|
|
defmodule Pleroma.Repo.Migrations.FixMissingFollowingCount do |
|
|
|
use Ecto.Migration |
|
|
|
|
|
|
|
def up do |
|
|
|
""" |
|
|
|
UPDATE |
|
|
|
users |
|
|
|
SET |
|
|
|
following_count = sub.count |
|
|
|
FROM |
|
|
|
( |
|
|
|
SELECT |
|
|
|
users.id AS sub_id |
|
|
|
,COUNT (following_relationships.id) |
|
|
|
FROM |
|
|
|
following_relationships |
|
|
|
,users |
|
|
|
WHERE |
|
|
|
users.id = following_relationships.follower_id |
|
|
|
AND following_relationships.state = 'accept' |
|
|
|
GROUP BY |
|
|
|
users.id |
|
|
|
) AS sub |
|
|
|
WHERE |
|
|
|
users.id = sub.sub_id |
|
|
|
AND users.local = TRUE |
|
|
|
; |
|
|
|
""" |
|
|
|
|> execute() |
|
|
|
|
|
|
|
""" |
|
|
|
UPDATE |
|
|
|
users |
|
|
|
SET |
|
|
|
following_count = 0 |
|
|
|
WHERE |
|
|
|
following_count IS NULL |
|
|
|
""" |
|
|
|
|> execute() |
|
|
|
|
|
|
|
execute("ALTER TABLE users |
|
|
|
ALTER COLUMN following_count SET DEFAULT 0, |
|
|
|
ALTER COLUMN following_count SET NOT NULL |
|
|
|
") |
|
|
|
end |
|
|
|
|
|
|
|
def down do |
|
|
|
execute("ALTER TABLE users |
|
|
|
ALTER COLUMN following_count DROP DEFAULT, |
|
|
|
ALTER COLUMN following_count DROP NOT NULL |
|
|
|
") |
|
|
|
end |
|
|
|
end |