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