mobilizon.chapril.org-mobil.../priv/repo/migrations/20180517100700_move_from_ac...

99 lines
2.8 KiB
Elixir

defmodule Eventos.Repo.Migrations.MoveFromAccountToActor do
use Ecto.Migration
def up do
drop table("event_requests")
drop table("group_requests")
alter table("events") do
remove :organizer_group_id
end
rename table("members"), :account_id, to: :actor_id
alter table("members") do
remove :group_id
add :parent_id, references(:accounts, on_delete: :nothing)
end
drop table("groups")
rename table("accounts"), to: table("actors")
Eventos.Actors.ActorTypeEnum.create_type
rename table("actors"), :username, to: :name
rename table("actors"), :description, to: :summary
rename table("actors"), :display_name, to: :preferred_username
alter table("actors") do
add :inbox_url, :string
add :outbox_url, :string
add :following_url, :string
add :followers_url, :string
add :shared_inbox_url, :string
add :type, :actor_type
add :manually_approves_followers, :boolean
modify :name, :string, null: true
modify :preferred_username, :string, null: false
end
create unique_index(:actors, [:preferred_username, :domain])
rename table("events"), :organizer_account_id, to: :organizer_actor_id
rename table("participants"), :account_id, to: :actor_id
create table("followers") do
add :approved, :boolean, default: false
add :score, :integer, default: 1000
add :actor_id, references(:actors, on_delete: :nothing)
add :target_actor_id, references(:actors, on_delete: :nothing)
end
rename table("comments"), :account_id, to: :actor_id
end
def down do
create table("event_requests")
create table("group_requests")
alter table("events") do
add :organizer_group_id, :integer
end
rename table("members"), :actor_id, to: :account_id
alter table("members") do
add :group_id, :integer
remove :parent_id
end
create table("groups")
rename table("actors"), to: table("accounts")
rename table("accounts"), :name, to: :username
rename table("accounts"), :summary, to: :description
rename table("accounts"), :preferred_username, to: :display_name
alter table("accounts") do
remove :inbox_url
remove :outbox_url
remove :following_url
remove :followers_url
remove :shared_inbox_url
remove :type
remove :manually_approves_followers
modify :username, :string, null: false
modify :display_name, :string, null: true
end
Eventos.Actors.ActorTypeEnum.drop_type()
rename table("events"), :organizer_actor_id, to: :organizer_account_id
rename table("participants"), :actor_id, to: :account_id
rename table("comments"), :actor_id, to: :account_id
drop index("accounts", [:preferred_username, :domain], name: :actors_preferred_username_domain_index)
drop table("followers")
end
end