summaryrefslogtreecommitdiff
path: root/priv/repo/migrations/20170719152213_add_follower_address_to_user.exs
blob: bd3c93bd5105511b215cc383f4df4eb4a929056b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
defmodule Pleroma.Repo.Migrations.AddFollowerAddressToUser do
  use Ecto.Migration
  import Ecto.Query
  import Supervisor.Spec
  alias Pleroma.{Repo, User}

  def up do
    alter table(:users) do
      add :follower_address, :string, unique: true
    end
    flush()

    children = [
      # Start the endpoint when the application starts
      supervisor(Pleroma.Web.Endpoint, [])
    ]
    opts = [strategy: :one_for_one, name: Pleroma.Supervisor]
    Supervisor.start_link(children, opts)

    Enum.each(Repo.all(User), fn (user) ->
      if !user.follower_address do
        cs = Ecto.Changeset.change(user, %{follower_address: User.ap_followers(user)})
        Repo.update!(cs)
      end
    end)
  end

  def down do
    alter table(:users) do
      remove :follower_address
    end
  end
end