|
- defmodule Pleroma.Repo.Migrations.MigrateMissingFollowingRelationships do
- use Ecto.Migration
-
- def change do
- execute(import_pending_follows_from_activities(), "")
- end
-
- defp import_pending_follows_from_activities do
- """
- INSERT INTO
- following_relationships (
- follower_id,
- following_id,
- state,
- inserted_at,
- updated_at
- )
- SELECT
- followers.id,
- following.id,
- activities.data ->> 'state',
- (activities.data ->> 'published') :: timestamp,
- now()
- FROM
- activities
- JOIN users AS followers ON (activities.actor = followers.ap_id)
- JOIN users AS following ON (activities.data ->> 'object' = following.ap_id)
- WHERE
- activities.data ->> 'type' = 'Follow'
- AND activities.data ->> 'state' = 'pending'
- ORDER BY activities.updated_at DESC
- ON CONFLICT DO NOTHING
- """
- end
- end
|