34 lines
801 B
Elixir
34 lines
801 B
Elixir
|
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
|