diff options
Diffstat (limited to 'priv/repo/migrations')
3 files changed, 37 insertions, 0 deletions
| diff --git a/priv/repo/migrations/20190710115833_add_following_address_to_user.exs b/priv/repo/migrations/20190710115833_add_following_address_to_user.exs new file mode 100644 index 000000000..fe30472a1 --- /dev/null +++ b/priv/repo/migrations/20190710115833_add_following_address_to_user.exs @@ -0,0 +1,9 @@ +defmodule Pleroma.Repo.Migrations.AddFollowingAddressToUser do +  use Ecto.Migration + +  def change do +    alter table(:users) do +      add(:following_address, :string, unique: true) +    end +  end +end diff --git a/priv/repo/migrations/20190710125051_add_following_address_index_to_user.exs b/priv/repo/migrations/20190710125051_add_following_address_index_to_user.exs new file mode 100644 index 000000000..0cbfb71f4 --- /dev/null +++ b/priv/repo/migrations/20190710125051_add_following_address_index_to_user.exs @@ -0,0 +1,8 @@ +defmodule Pleroma.Repo.Migrations.AddFollowingAddressIndexToUser do +  use Ecto.Migration + +  @disable_ddl_transaction true +  def change do +    create(index(:users, [:following_address], concurrently: true)) +  end +end diff --git a/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs b/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs new file mode 100644 index 000000000..779aa382e --- /dev/null +++ b/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs @@ -0,0 +1,20 @@ +defmodule Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData do +  use Ecto.Migration +  import Ecto.Query +  alias Pleroma.User + +  def change do +    query = +      User.external_users_query() +      |> select([u], struct(u, [:id, :ap_id, :info])) + +    Pleroma.Repo.stream(query) +    |> Enum.each(fn +      %{info: %{source_data: source_data}} = user -> +        Ecto.Changeset.cast(user, %{following_address: source_data["following"]}, [ +          :following_address +        ]) +        |> Pleroma.Repo.update() +    end) +  end +end | 
