33 lines
1.1 KiB
Elixir
33 lines
1.1 KiB
Elixir
|
defmodule Mobilizon.Repo.Migrations.SplitEventVisibilityAndJoinOptions do
|
||
|
use Ecto.Migration
|
||
|
alias Mobilizon.Events.EventVisibilityEnum
|
||
|
alias Mobilizon.Events.JoinOptionsEnum
|
||
|
|
||
|
@doc """
|
||
|
EventVisibilityEnum has dropped some possible values, so we need to recreate it
|
||
|
"""
|
||
|
def up do
|
||
|
execute "ALTER TABLE events ALTER COLUMN visibility TYPE VARCHAR USING visibility::text"
|
||
|
EventVisibilityEnum.drop_type
|
||
|
EventVisibilityEnum.create_type
|
||
|
execute "ALTER TABLE events ALTER COLUMN visibility TYPE event_visibility_type USING visibility::event_visibility_type"
|
||
|
|
||
|
JoinOptionsEnum.create_type
|
||
|
alter table(:events) do
|
||
|
add(:join_options, JoinOptionsEnum.type(), null: false, default: "free")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def down do
|
||
|
alter table(:events) do
|
||
|
remove(:join_options)
|
||
|
end
|
||
|
JoinOptionsEnum.drop_type
|
||
|
|
||
|
execute "ALTER TABLE events ALTER COLUMN visibility TYPE VARCHAR USING visibility::text"
|
||
|
EventVisibilityEnum.drop_type
|
||
|
EventVisibilityEnum.create_type
|
||
|
execute "ALTER TABLE events ALTER COLUMN visibility TYPE event_visibility_type USING visibility::event_visibility_type"
|
||
|
end
|
||
|
end
|