diff options
Diffstat (limited to 'priv')
70 files changed, 151 insertions, 103 deletions
| diff --git a/priv/repo/migrations/20170320193800_create_user.exs b/priv/repo/migrations/20170320193800_create_user.exs index 2d2f7fbf0..089964a26 100644 --- a/priv/repo/migrations/20170320193800_create_user.exs +++ b/priv/repo/migrations/20170320193800_create_user.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreatePleroma.User do    use Ecto.Migration    def change do -    create table(:users) do +    create_if_not_exists table(:users) do        add :email, :string        add :password_hash, :string        add :name, :string diff --git a/priv/repo/migrations/20170321074828_create_activity.exs b/priv/repo/migrations/20170321074828_create_activity.exs index 6e875ae43..f5c872721 100644 --- a/priv/repo/migrations/20170321074828_create_activity.exs +++ b/priv/repo/migrations/20170321074828_create_activity.exs @@ -2,13 +2,13 @@ defmodule Pleroma.Repo.Migrations.CreatePleroma.Activity do    use Ecto.Migration    def change do -    create table(:activities) do +    create_if_not_exists table(:activities) do        add :data, :map        timestamps()      end -    create index(:activities, [:data], using: :gin) +    create_if_not_exists index(:activities, [:data], using: :gin)    end  end diff --git a/priv/repo/migrations/20170321074832_create_object.exs b/priv/repo/migrations/20170321074832_create_object.exs index b8bd49747..b184672ad 100644 --- a/priv/repo/migrations/20170321074832_create_object.exs +++ b/priv/repo/migrations/20170321074832_create_object.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreatePleroma.Object do    use Ecto.Migration    def change do -    create table(:objects) do +    create_if_not_exists table(:objects) do        add :data, :map        timestamps() diff --git a/priv/repo/migrations/20170330153447_add_index_to_objects.exs b/priv/repo/migrations/20170330153447_add_index_to_objects.exs index 30ed61f51..25e308533 100644 --- a/priv/repo/migrations/20170330153447_add_index_to_objects.exs +++ b/priv/repo/migrations/20170330153447_add_index_to_objects.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddIndexToObjects do    use Ecto.Migration    def change do -    create index(:objects, [:data], using: :gin) +    create_if_not_exists index(:objects, [:data], using: :gin)    end  end diff --git a/priv/repo/migrations/20170415141210_add_unique_index_to_email_and_nickname.exs b/priv/repo/migrations/20170415141210_add_unique_index_to_email_and_nickname.exs index 361ca04da..42da88954 100644 --- a/priv/repo/migrations/20170415141210_add_unique_index_to_email_and_nickname.exs +++ b/priv/repo/migrations/20170415141210_add_unique_index_to_email_and_nickname.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.AddUniqueIndexToEmailAndNickname do    use Ecto.Migration    def change do -    create unique_index(:users, [:email]) -    create unique_index(:users, [:nickname]) +    create_if_not_exists unique_index(:users, [:email]) +    create_if_not_exists unique_index(:users, [:nickname])    end  end diff --git a/priv/repo/migrations/20170418200143_create_webssub_server_subscription.exs b/priv/repo/migrations/20170418200143_create_webssub_server_subscription.exs index fe2fa2304..243280378 100644 --- a/priv/repo/migrations/20170418200143_create_webssub_server_subscription.exs +++ b/priv/repo/migrations/20170418200143_create_webssub_server_subscription.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateWebsubServerSubscription do    use Ecto.Migration    def change do -    create table(:websub_server_subscriptions) do +    create_if_not_exists table(:websub_server_subscriptions) do        add :topic, :string        add :callback, :string        add :secret, :string diff --git a/priv/repo/migrations/20170426154155_create_websub_client_subscription.exs b/priv/repo/migrations/20170426154155_create_websub_client_subscription.exs index 89d3af7ae..4b79d7506 100644 --- a/priv/repo/migrations/20170426154155_create_websub_client_subscription.exs +++ b/priv/repo/migrations/20170426154155_create_websub_client_subscription.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateWebsubClientSubscription do    use Ecto.Migration    def change do -    create table(:websub_client_subscriptions) do +    create_if_not_exists table(:websub_client_subscriptions) do        add :topic, :string        add :secret, :string        add :valid_until, :naive_datetime_usec diff --git a/priv/repo/migrations/20170501133231_add_id_contraints_to_activities_and_objects_part_two.exs b/priv/repo/migrations/20170501133231_add_id_contraints_to_activities_and_objects_part_two.exs index 1472b60b4..f5e5cd269 100644 --- a/priv/repo/migrations/20170501133231_add_id_contraints_to_activities_and_objects_part_two.exs +++ b/priv/repo/migrations/20170501133231_add_id_contraints_to_activities_and_objects_part_two.exs @@ -1,10 +1,12 @@  defmodule Pleroma.Repo.Migrations.AddIdContraintsToActivitiesAndObjectsPartTwo do    use Ecto.Migration -  def change do +  def up do      drop_if_exists index(:objects, ["(data->>\"id\")"], name: :objects_unique_apid_index)      drop_if_exists index(:activities, ["(data->>\"id\")"], name: :activities_unique_apid_index) -    create unique_index(:objects, ["(data->>'id')"], name: :objects_unique_apid_index) -    create unique_index(:activities, ["(data->>'id')"], name: :activities_unique_apid_index) +    create_if_not_exists unique_index(:objects, ["(data->>'id')"], name: :objects_unique_apid_index) +    create_if_not_exists unique_index(:activities, ["(data->>'id')"], name: :activities_unique_apid_index)    end + +  def down, do: :ok  end diff --git a/priv/repo/migrations/20170502083023_add_local_field_to_activities.exs b/priv/repo/migrations/20170502083023_add_local_field_to_activities.exs index 088d68f67..cebc11d21 100644 --- a/priv/repo/migrations/20170502083023_add_local_field_to_activities.exs +++ b/priv/repo/migrations/20170502083023_add_local_field_to_activities.exs @@ -6,6 +6,6 @@ defmodule Pleroma.Repo.Migrations.AddLocalFieldToActivities do        add :local, :boolean, default: true      end -    create index(:activities, [:local]) +    create_if_not_exists index(:activities, [:local])    end  end diff --git a/priv/repo/migrations/20170506222027_add_unique_index_to_apid.exs b/priv/repo/migrations/20170506222027_add_unique_index_to_apid.exs index 864b5e47d..1b7e33b70 100644 --- a/priv/repo/migrations/20170506222027_add_unique_index_to_apid.exs +++ b/priv/repo/migrations/20170506222027_add_unique_index_to_apid.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddUniqueIndexToAPID do    use Ecto.Migration    def change do -    create unique_index(:users, [:ap_id]) +    create_if_not_exists unique_index(:users, [:ap_id])    end  end diff --git a/priv/repo/migrations/20170529093232_longer_bios.exs b/priv/repo/migrations/20170529093232_longer_bios.exs index f8c14b117..9188f4bee 100644 --- a/priv/repo/migrations/20170529093232_longer_bios.exs +++ b/priv/repo/migrations/20170529093232_longer_bios.exs @@ -1,9 +1,16 @@  defmodule Pleroma.Repo.Migrations.LongerBios do    use Ecto.Migration -  def change do +  def up do      alter table(:users) do        modify :bio, :text      end    end + +  def down do +    alter table(:users) do +      modify :bio, :string +    end +  end +  end diff --git a/priv/repo/migrations/20170620095947_remove_activities_index.exs b/priv/repo/migrations/20170620095947_remove_activities_index.exs index 85feabeeb..e7d41eac4 100644 --- a/priv/repo/migrations/20170620095947_remove_activities_index.exs +++ b/priv/repo/migrations/20170620095947_remove_activities_index.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.RemoveActivitiesIndex do    use Ecto.Migration    def change do -    drop index(:activities, [:data]) +    drop_if_exists index(:activities, [:data])    end  end diff --git a/priv/repo/migrations/20170620133028_add_object_activity_index.exs b/priv/repo/migrations/20170620133028_add_object_activity_index.exs index df0b8391e..5c312b8f4 100644 --- a/priv/repo/migrations/20170620133028_add_object_activity_index.exs +++ b/priv/repo/migrations/20170620133028_add_object_activity_index.exs @@ -3,6 +3,6 @@ defmodule Pleroma.Repo.Migrations.AddObjectActivityIndex do    def change do      # This was wrong, now a noop -    # create index(:objects, ["(data->'object'->>'id')", "(data->>'type')"], name: :activities_create_objects_index) +    # create_if_not_exists index(:objects, ["(data->'object'->>'id')", "(data->>'type')"], name: :activities_create_objects_index)    end  end diff --git a/priv/repo/migrations/20170620142420_add_object_activity_index_part_two.exs b/priv/repo/migrations/20170620142420_add_object_activity_index_part_two.exs index 8d5a95c45..c95218fad 100644 --- a/priv/repo/migrations/20170620142420_add_object_activity_index_part_two.exs +++ b/priv/repo/migrations/20170620142420_add_object_activity_index_part_two.exs @@ -3,6 +3,6 @@ defmodule Pleroma.Repo.Migrations.AddObjectActivityIndexPartTwo do    def change do      drop_if_exists index(:objects, ["(data->'object'->>'id')", "(data->>'type')"], name: :activities_create_objects_index) -    create index(:activities, ["(data->'object'->>'id')", "(data->>'type')"], name: :activities_create_objects_index) +    create_if_not_exists index(:activities, ["(data->'object'->>'id')", "(data->>'type')"], name: :activities_create_objects_index)    end  end diff --git a/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs b/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs index 82c64396f..807fe3728 100644 --- a/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs +++ b/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddActorIndexToActivity do    use Ecto.Migration    def change do -    create index(:activities, ["(data->>'actor')", "inserted_at desc"], name: :activities_actor_index) +    create_if_not_exists index(:activities, ["(data->>'actor')", "inserted_at desc"], name: :activities_actor_index)    end  end diff --git a/priv/repo/migrations/20170906120646_add_mastodon_apps.exs b/priv/repo/migrations/20170906120646_add_mastodon_apps.exs index d3dd317dd..ccd5e3fe2 100644 --- a/priv/repo/migrations/20170906120646_add_mastodon_apps.exs +++ b/priv/repo/migrations/20170906120646_add_mastodon_apps.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.AddMastodonApps do    use Ecto.Migration    def change do -    create table(:apps) do +    create_if_not_exists table(:apps) do        add :client_name, :string        add :redirect_uris, :string        add :scopes, :string diff --git a/priv/repo/migrations/20170906143140_create_o_auth_authorizations.exs b/priv/repo/migrations/20170906143140_create_o_auth_authorizations.exs index ead1d023e..63b25c537 100644 --- a/priv/repo/migrations/20170906143140_create_o_auth_authorizations.exs +++ b/priv/repo/migrations/20170906143140_create_o_auth_authorizations.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateOAuthAuthorizations do    use Ecto.Migration    def change do -    create table(:oauth_authorizations) do +    create_if_not_exists table(:oauth_authorizations) do        add :app_id, references(:apps)        add :user_id, references(:users)        add :token, :string diff --git a/priv/repo/migrations/20170906152508_create_o_auth_token.exs b/priv/repo/migrations/20170906152508_create_o_auth_token.exs index ed56bbf36..08471bbf8 100644 --- a/priv/repo/migrations/20170906152508_create_o_auth_token.exs +++ b/priv/repo/migrations/20170906152508_create_o_auth_token.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateOAuthToken do    use Ecto.Migration    def change do -    create table(:oauth_tokens) do +    create_if_not_exists table(:oauth_tokens) do        add :app_id, references(:apps)        add :user_id, references(:users)        add :token, :string diff --git a/priv/repo/migrations/20170911123607_create_notifications.exs b/priv/repo/migrations/20170911123607_create_notifications.exs index 5be809fb8..50de9c5f1 100644 --- a/priv/repo/migrations/20170911123607_create_notifications.exs +++ b/priv/repo/migrations/20170911123607_create_notifications.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateNotifications do    use Ecto.Migration    def change do -    create table(:notifications) do +    create_if_not_exists table(:notifications) do        add :user_id, references(:users, on_delete: :delete_all)        add :activity_id, references(:activities, on_delete: :delete_all)        add :seen, :boolean, default: false @@ -10,6 +10,6 @@ defmodule Pleroma.Repo.Migrations.CreateNotifications do        timestamps()      end -    create index(:notifications, [:user_id]) +    create_if_not_exists index(:notifications, [:user_id])    end  end diff --git a/priv/repo/migrations/20171019141706_create_password_reset_tokens.exs b/priv/repo/migrations/20171019141706_create_password_reset_tokens.exs index 2d9be3aab..dde0f945f 100644 --- a/priv/repo/migrations/20171019141706_create_password_reset_tokens.exs +++ b/priv/repo/migrations/20171019141706_create_password_reset_tokens.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreatePasswordResetTokens do    use Ecto.Migration    def change do -    create table(:password_reset_tokens) do +    create_if_not_exists table(:password_reset_tokens) do        add :token, :string        add :user_id, references(:users)        add :used, :boolean, default: false diff --git a/priv/repo/migrations/20171109091239_add_actor_to_activity.exs b/priv/repo/migrations/20171109091239_add_actor_to_activity.exs index 2d8b60a91..fb5f80c98 100644 --- a/priv/repo/migrations/20171109091239_add_actor_to_activity.exs +++ b/priv/repo/migrations/20171109091239_add_actor_to_activity.exs @@ -12,7 +12,7 @@ defmodule Pleroma.Repo.Migrations.AddActorToActivity do    end    def down do -    drop index(:activities, [:actor, "id DESC NULLS LAST"]) +    drop_if_exists index(:activities, [:actor, "id DESC NULLS LAST"])      alter table(:activities) do        remove :actor      end diff --git a/priv/repo/migrations/20171130135819_add_local_index_to_user.exs b/priv/repo/migrations/20171130135819_add_local_index_to_user.exs index 25716be21..3438bbbc4 100644 --- a/priv/repo/migrations/20171130135819_add_local_index_to_user.exs +++ b/priv/repo/migrations/20171130135819_add_local_index_to_user.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddLocalIndexToUser do    use Ecto.Migration    def change do -    create index(:users, [:local]) +    create_if_not_exists index(:users, [:local])    end  end diff --git a/priv/repo/migrations/20171212163643_add_recipients_to_activities.exs b/priv/repo/migrations/20171212163643_add_recipients_to_activities.exs index 7bce78108..4520b398e 100644 --- a/priv/repo/migrations/20171212163643_add_recipients_to_activities.exs +++ b/priv/repo/migrations/20171212163643_add_recipients_to_activities.exs @@ -6,6 +6,6 @@ defmodule Pleroma.Repo.Migrations.AddRecipientsToActivities do        add :recipients, {:array, :string}      end -    create index(:activities, [:recipients], using: :gin) +    create_if_not_exists index(:activities, [:recipients], using: :gin)    end  end diff --git a/priv/repo/migrations/20171212164525_fill_recipients_in_activities.exs b/priv/repo/migrations/20171212164525_fill_recipients_in_activities.exs index 1fcc0dabb..87de64ca5 100644 --- a/priv/repo/migrations/20171212164525_fill_recipients_in_activities.exs +++ b/priv/repo/migrations/20171212164525_fill_recipients_in_activities.exs @@ -18,4 +18,6 @@ defmodule Pleroma.Repo.Migrations.FillRecipientsInActivities do        end)      end    end + +  def down, do: :ok  end diff --git a/priv/repo/migrations/20180221210540_make_following_postgres_array.exs b/priv/repo/migrations/20180221210540_make_following_postgres_array.exs index 98ca7d9d7..5a8f8f669 100644 --- a/priv/repo/migrations/20180221210540_make_following_postgres_array.exs +++ b/priv/repo/migrations/20180221210540_make_following_postgres_array.exs @@ -1,7 +1,7 @@  defmodule Pleroma.Repo.Migrations.MakeFollowingPostgresArray do    use Ecto.Migration -  def change do +  def up do      alter table(:users) do        add :following_temp, {:array, :string}      end @@ -15,4 +15,6 @@ defmodule Pleroma.Repo.Migrations.MakeFollowingPostgresArray do      end      rename table(:users), :following_temp, to: :following    end + +  def down, do: :ok  end diff --git a/priv/repo/migrations/20180327174350_drop_local_index_on_activities.exs b/priv/repo/migrations/20180327174350_drop_local_index_on_activities.exs index 70f2c9fe6..35c4ce62f 100644 --- a/priv/repo/migrations/20180327174350_drop_local_index_on_activities.exs +++ b/priv/repo/migrations/20180327174350_drop_local_index_on_activities.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.DropLocalIndexOnActivities do    use Ecto.Migration    def change do -    drop index(:users, [:local]) +    drop_if_exists index(:users, [:local])    end  end diff --git a/priv/repo/migrations/20180327175831_actually_drop_local_index.exs b/priv/repo/migrations/20180327175831_actually_drop_local_index.exs index 2da65689c..7556336ed 100644 --- a/priv/repo/migrations/20180327175831_actually_drop_local_index.exs +++ b/priv/repo/migrations/20180327175831_actually_drop_local_index.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.ActuallyDropLocalIndex do    use Ecto.Migration    def change do -    create index(:users, [:local]) +    create_if_not_exists index(:users, [:local])      drop_if_exists index("activities", :local)    end  end diff --git a/priv/repo/migrations/20180429094642_create_lists.exs b/priv/repo/migrations/20180429094642_create_lists.exs index 64c62250e..9d3ce50b3 100644 --- a/priv/repo/migrations/20180429094642_create_lists.exs +++ b/priv/repo/migrations/20180429094642_create_lists.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateLists do    use Ecto.Migration    def change do -    create table(:lists) do +    create_if_not_exists table(:lists) do        add :user_id, references(:users, on_delete: :delete_all)        add :title, :string        add :following, {:array, :string} @@ -10,6 +10,6 @@ defmodule Pleroma.Repo.Migrations.CreateLists do        timestamps()      end -    create index(:lists, [:user_id]) +    create_if_not_exists index(:lists, [:user_id])    end  end diff --git a/priv/repo/migrations/20180516154905_create_user_trigram_index.exs b/priv/repo/migrations/20180516154905_create_user_trigram_index.exs index abfa4b3cc..58622a87e 100644 --- a/priv/repo/migrations/20180516154905_create_user_trigram_index.exs +++ b/priv/repo/migrations/20180516154905_create_user_trigram_index.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.CreateUserTrigramIndex do    use Ecto.Migration    def change do -    create index(:users, ["(nickname || name) gist_trgm_ops"], name: :users_trigram_index, using: :gist) +    create_if_not_exists index(:users, ["(nickname || name) gist_trgm_ops"], name: :users_trigram_index, using: :gist)    end  end diff --git a/priv/repo/migrations/20180530123448_add_list_follow_index.exs b/priv/repo/migrations/20180530123448_add_list_follow_index.exs index d6603e916..86b8de30a 100644 --- a/priv/repo/migrations/20180530123448_add_list_follow_index.exs +++ b/priv/repo/migrations/20180530123448_add_list_follow_index.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddListFollowIndex do    use Ecto.Migration    def change do -    create index(:lists, [:following]) +    create_if_not_exists index(:lists, [:following])    end  end diff --git a/priv/repo/migrations/20180612110515_create_user_invite_tokens.exs b/priv/repo/migrations/20180612110515_create_user_invite_tokens.exs index d0a1cf784..faee379f0 100644 --- a/priv/repo/migrations/20180612110515_create_user_invite_tokens.exs +++ b/priv/repo/migrations/20180612110515_create_user_invite_tokens.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateUserInviteTokens do    use Ecto.Migration    def change do -    create table(:user_invite_tokens) do +    create_if_not_exists table(:user_invite_tokens) do        add :token, :string        add :used, :boolean, default: false diff --git a/priv/repo/migrations/20180813003722_create_filters.exs b/priv/repo/migrations/20180813003722_create_filters.exs index 8e7129f34..541cf46a1 100644 --- a/priv/repo/migrations/20180813003722_create_filters.exs +++ b/priv/repo/migrations/20180813003722_create_filters.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateFilters do    use Ecto.Migration    def change do -    create table(:filters) do +    create_if_not_exists table(:filters) do        add :user_id, references(:users, on_delete: :delete_all)        add :filter_id, :integer        add :hide, :boolean @@ -14,7 +14,7 @@ defmodule Pleroma.Repo.Migrations.CreateFilters do        timestamps()      end -    create index(:filters, [:user_id]) -    create index(:filters, [:phrase], where: "hide = true", name: :hided_phrases_index) +    create_if_not_exists index(:filters, [:user_id]) +    create_if_not_exists index(:filters, [:phrase], where: "hide = true", name: :hided_phrases_index)    end  end diff --git a/priv/repo/migrations/20180829082446_add_recipients_to_and_cc_fields_to_activities.exs b/priv/repo/migrations/20180829082446_add_recipients_to_and_cc_fields_to_activities.exs index 96af412f0..af9d521c0 100644 --- a/priv/repo/migrations/20180829082446_add_recipients_to_and_cc_fields_to_activities.exs +++ b/priv/repo/migrations/20180829082446_add_recipients_to_and_cc_fields_to_activities.exs @@ -7,7 +7,7 @@ defmodule Pleroma.Repo.Migrations.AddRecipientsToAndCcFieldsToActivities do        add :recipients_cc, {:array, :string}      end -    create index(:activities, [:recipients_to], using: :gin) -    create index(:activities, [:recipients_cc], using: :gin) +    create_if_not_exists index(:activities, [:recipients_to], using: :gin) +    create_if_not_exists index(:activities, [:recipients_cc], using: :gin)    end  end diff --git a/priv/repo/migrations/20180829182612_activities_add_to_cc_indices.exs b/priv/repo/migrations/20180829182612_activities_add_to_cc_indices.exs index f6c622e3e..9d31f6779 100644 --- a/priv/repo/migrations/20180829182612_activities_add_to_cc_indices.exs +++ b/priv/repo/migrations/20180829182612_activities_add_to_cc_indices.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.ActivitiesAddToCcIndices do    use Ecto.Migration    def change do -    create index(:activities, ["(data->'to')"], name: :activities_to_index, using: :gin) -    create index(:activities, ["(data->'cc')"], name: :activities_cc_index, using: :gin) +    create_if_not_exists index(:activities, ["(data->'to')"], name: :activities_to_index, using: :gin) +    create_if_not_exists index(:activities, ["(data->'cc')"], name: :activities_cc_index, using: :gin)    end  end diff --git a/priv/repo/migrations/20180829183529_remove_recipients_to_and_cc_fields_from_activities.exs b/priv/repo/migrations/20180829183529_remove_recipients_to_and_cc_fields_from_activities.exs index ed4f5af30..017ef161f 100644 --- a/priv/repo/migrations/20180829183529_remove_recipients_to_and_cc_fields_from_activities.exs +++ b/priv/repo/migrations/20180829183529_remove_recipients_to_and_cc_fields_from_activities.exs @@ -1,10 +1,17 @@  defmodule Pleroma.Repo.Migrations.RemoveRecipientsToAndCcFieldsFromActivities do    use Ecto.Migration -  def change do +  def up do      alter table(:activities) do        remove :recipients_to        remove :recipients_cc      end    end + +  def down do +    alter table(:activities) do +      add :recipients_to, {:array, :string} +      add :recipients_cc, {:array, :string} +    end +  end  end diff --git a/priv/repo/migrations/20180903114437_users_add_is_moderator_index.exs b/priv/repo/migrations/20180903114437_users_add_is_moderator_index.exs index ba6b90ea9..adce28bdf 100644 --- a/priv/repo/migrations/20180903114437_users_add_is_moderator_index.exs +++ b/priv/repo/migrations/20180903114437_users_add_is_moderator_index.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.UsersAddIsModeratorIndex do    use Ecto.Migration    def change do -    create index(:users, ["(info->'is_moderator')"], name: :users_is_moderator_index, using: :gin) +    create_if_not_exists index(:users, ["(info->'is_moderator')"], name: :users_is_moderator_index, using: :gin)    end  end diff --git a/priv/repo/migrations/20180918182427_create_push_subscriptions.exs b/priv/repo/migrations/20180918182427_create_push_subscriptions.exs index 0cc7afa54..36bdf322a 100644 --- a/priv/repo/migrations/20180918182427_create_push_subscriptions.exs +++ b/priv/repo/migrations/20180918182427_create_push_subscriptions.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreatePushSubscriptions do    use Ecto.Migration    def change do -    create table("push_subscriptions") do +    create_if_not_exists table("push_subscriptions") do        add :user_id, references("users", on_delete: :delete_all)        add :token_id, references("oauth_tokens", on_delete: :delete_all)        add :endpoint, :string @@ -13,6 +13,6 @@ defmodule Pleroma.Repo.Migrations.CreatePushSubscriptions do        timestamps()      end -    create index("push_subscriptions", [:user_id, :token_id], unique: true) +    create_if_not_exists index("push_subscriptions", [:user_id, :token_id], unique: true)    end  end diff --git a/priv/repo/migrations/20181201104428_add_uuid_extension.exs b/priv/repo/migrations/20181201104428_add_uuid_extension.exs index 2509e558d..99fcb957c 100644 --- a/priv/repo/migrations/20181201104428_add_uuid_extension.exs +++ b/priv/repo/migrations/20181201104428_add_uuid_extension.exs @@ -1,7 +1,9 @@  defmodule Pleroma.Repo.Migrations.AddUUIDExtension do    use Ecto.Migration -  def change do +  def up do      execute("create extension if not exists \"uuid-ossp\"")    end + +  def down, do: :ok  end diff --git a/priv/repo/migrations/20181201105617_add_uui_ds_to_user_info.exs b/priv/repo/migrations/20181201105617_add_uui_ds_to_user_info.exs index 9571a1e4d..964383668 100644 --- a/priv/repo/migrations/20181201105617_add_uui_ds_to_user_info.exs +++ b/priv/repo/migrations/20181201105617_add_uui_ds_to_user_info.exs @@ -1,7 +1,9 @@  defmodule Pleroma.Repo.Migrations.AddUUIDsToUserInfo do    use Ecto.Migration -  def change do +  def up do      execute("update users set info = jsonb_set(info, '{\"id\"}', to_jsonb(uuid_generate_v4()))")    end + +  def down, do: :ok  end diff --git a/priv/repo/migrations/20181206125616_add_tags_to_users.exs b/priv/repo/migrations/20181206125616_add_tags_to_users.exs index 1502f63b6..7d42a0fba 100644 --- a/priv/repo/migrations/20181206125616_add_tags_to_users.exs +++ b/priv/repo/migrations/20181206125616_add_tags_to_users.exs @@ -6,6 +6,6 @@ defmodule Pleroma.Repo.Migrations.AddTagsToUsers do        add :tags, {:array, :string}      end -    create index(:users, [:tags], using: :gin) +    create_if_not_exists index(:users, [:tags], using: :gin)    end  end diff --git a/priv/repo/migrations/20181218172826_users_and_activities_flake_id.exs b/priv/repo/migrations/20181218172826_users_and_activities_flake_id.exs index 47d2d02da..a5b4c543d 100644 --- a/priv/repo/migrations/20181218172826_users_and_activities_flake_id.exs +++ b/priv/repo/migrations/20181218172826_users_and_activities_flake_id.exs @@ -12,7 +12,7 @@ defmodule Pleroma.Repo.Migrations.UsersAndActivitiesFlakeId do    #   4- update relation pkeys with the new ids    #   5- rename the temporary column to id    #   6- re-create the constraints -  def change do +  def up do      # Old serial int ids are transformed to 128bits with extra padding.      # The application (in `Pleroma.FlakeId`) handles theses IDs properly as integers; to keep compatibility      # with previously issued ids. @@ -75,6 +75,8 @@ defmodule Pleroma.Repo.Migrations.UsersAndActivitiesFlakeId do      stop_clippy_heartbeats(clippy)    end +  def down, do: :ok +    defp start_clippy_heartbeats() do      count = from(a in "activities", select: count(a.id)) |> Repo.one! diff --git a/priv/repo/migrations/20190109152453_add_visibility_function.exs b/priv/repo/migrations/20190109152453_add_visibility_function.exs index 3aadabcd7..b6a4e752b 100644 --- a/priv/repo/migrations/20190109152453_add_visibility_function.exs +++ b/priv/repo/migrations/20190109152453_add_visibility_function.exs @@ -37,12 +37,12 @@ defmodule Pleroma.Repo.Migrations.AddVisibilityFunction do    end    def down do -    drop( +    drop_if_exists(        index(:activities, ["activity_visibility(actor, recipients, data)"],          name: :activities_visibility_index        )      ) -    execute("drop function activity_visibility(actor varchar, recipients varchar[], data jsonb)") +    execute("drop function if exists activity_visibility(actor varchar, recipients varchar[], data jsonb)")    end  end diff --git a/priv/repo/migrations/20190115085500_create_user_fts_index.exs b/priv/repo/migrations/20190115085500_create_user_fts_index.exs index 499d67113..cff975318 100644 --- a/priv/repo/migrations/20190115085500_create_user_fts_index.exs +++ b/priv/repo/migrations/20190115085500_create_user_fts_index.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateUserFtsIndex do    use Ecto.Migration    def change do -    create index( +    create_if_not_exists index(               :users,               [                 """ diff --git a/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs b/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs index b4e8c984c..b0d272802 100644 --- a/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs +++ b/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs @@ -4,7 +4,7 @@ defmodule Pleroma.Repo.Migrations.FixUserTrigramIndex do    def up do      drop_if_exists(index(:users, [], name: :users_trigram_index)) -    create( +    create_if_not_exists(        index(:users, ["(trim(nickname || ' ' || coalesce(name, ''))) gist_trgm_ops"],          name: :users_trigram_index,          using: :gist @@ -15,7 +15,7 @@ defmodule Pleroma.Repo.Migrations.FixUserTrigramIndex do    def down do      drop_if_exists(index(:users, [], name: :users_trigram_index)) -    create( +    create_if_not_exists(        index(:users, ["(nickname || name) gist_trgm_ops"], name: :users_trigram_index, using: :gist)      )    end diff --git a/priv/repo/migrations/20190123092341_users_add_is_admin_index.exs b/priv/repo/migrations/20190123092341_users_add_is_admin_index.exs index ba6ff78b5..25f248c59 100644 --- a/priv/repo/migrations/20190123092341_users_add_is_admin_index.exs +++ b/priv/repo/migrations/20190123092341_users_add_is_admin_index.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.UsersAddIsAdminIndex do    use Ecto.Migration    def change do -    create(index(:users, ["(info->'is_admin')"], name: :users_is_admin_index, using: :gin)) +    create_if_not_exists(index(:users, ["(info->'is_admin')"], name: :users_is_admin_index, using: :gin))    end  end diff --git a/priv/repo/migrations/20190123125546_create_instances.exs b/priv/repo/migrations/20190123125546_create_instances.exs index 3d23b343e..a9b356bc3 100644 --- a/priv/repo/migrations/20190123125546_create_instances.exs +++ b/priv/repo/migrations/20190123125546_create_instances.exs @@ -2,14 +2,14 @@ defmodule Pleroma.Repo.Migrations.CreateInstances do    use Ecto.Migration    def change do -    create table(:instances) do +    create_if_not_exists table(:instances) do        add :host, :string        add :unreachable_since, :naive_datetime_usec        timestamps()      end -    create unique_index(:instances, [:host]) -    create index(:instances, [:unreachable_since]) +    create_if_not_exists unique_index(:instances, [:host]) +    create_if_not_exists index(:instances, [:unreachable_since])    end  end diff --git a/priv/repo/migrations/20190123125839_fix_info_ids.exs b/priv/repo/migrations/20190123125839_fix_info_ids.exs index 2b4c2b5a9..5b263b3b3 100644 --- a/priv/repo/migrations/20190123125839_fix_info_ids.exs +++ b/priv/repo/migrations/20190123125839_fix_info_ids.exs @@ -1,9 +1,11 @@  defmodule Pleroma.Repo.Migrations.FixInfoIds do    use Ecto.Migration -  def change do +  def up do      execute(        "update users set info = jsonb_set(info, '{id}', to_jsonb(uuid_generate_v4())) where info->'id' is null;"      )    end + +  def down, do: :ok  end diff --git a/priv/repo/migrations/20190126160540_change_push_subscriptions_varchar.exs b/priv/repo/migrations/20190126160540_change_push_subscriptions_varchar.exs index 337fed156..8e1c0e630 100644 --- a/priv/repo/migrations/20190126160540_change_push_subscriptions_varchar.exs +++ b/priv/repo/migrations/20190126160540_change_push_subscriptions_varchar.exs @@ -1,9 +1,15 @@  defmodule Pleroma.Repo.Migrations.ChangePushSubscriptionsVarchar do    use Ecto.Migration -  def change do +  def up do      alter table(:push_subscriptions) do        modify(:endpoint, :varchar)      end    end + +  def down do +    alter table(:push_subscriptions) do +      modify(:endpoint, :string) +    end +  end  end diff --git a/priv/repo/migrations/20190204200237_add_correct_dm_index.exs b/priv/repo/migrations/20190204200237_add_correct_dm_index.exs index 558732cd2..1facb37b8 100644 --- a/priv/repo/migrations/20190204200237_add_correct_dm_index.exs +++ b/priv/repo/migrations/20190204200237_add_correct_dm_index.exs @@ -19,7 +19,7 @@ defmodule Pleroma.Repo.Migrations.AddCorrectDMIndex do    end    def down do -    drop( +    drop_if_exists(        index(:activities, ["activity_visibility(actor, recipients, data)", "id DESC"],          name: :activities_visibility_index,          concurrently: true, diff --git a/priv/repo/migrations/20190205114625_create_thread_mutes.exs b/priv/repo/migrations/20190205114625_create_thread_mutes.exs index 8e9eccbae..7e44db121 100644 --- a/priv/repo/migrations/20190205114625_create_thread_mutes.exs +++ b/priv/repo/migrations/20190205114625_create_thread_mutes.exs @@ -2,11 +2,11 @@ defmodule Pleroma.Repo.Migrations.CreateThreadMutes do    use Ecto.Migration    def change do -    create table(:thread_mutes) do +    create_if_not_exists table(:thread_mutes) do        add :user_id, references(:users, type: :uuid, on_delete: :delete_all)        add :context, :string      end -    create unique_index(:thread_mutes, [:user_id, :context], name: :unique_index) +    create_if_not_exists unique_index(:thread_mutes, [:user_id, :context], name: :unique_index)    end  end diff --git a/priv/repo/migrations/20190315101315_create_registrations.exs b/priv/repo/migrations/20190315101315_create_registrations.exs index 6b28cbdd3..34a390a93 100644 --- a/priv/repo/migrations/20190315101315_create_registrations.exs +++ b/priv/repo/migrations/20190315101315_create_registrations.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateRegistrations do    use Ecto.Migration    def change do -    create table(:registrations, primary_key: false) do +    create_if_not_exists table(:registrations, primary_key: false) do        add :id, :uuid, primary_key: true        add :user_id, references(:users, type: :uuid, on_delete: :delete_all)        add :provider, :string @@ -12,7 +12,7 @@ defmodule Pleroma.Repo.Migrations.CreateRegistrations do        timestamps()      end -    create unique_index(:registrations, [:provider, :uid]) -    create unique_index(:registrations, [:user_id, :provider, :uid]) +    create_if_not_exists unique_index(:registrations, [:provider, :uid]) +    create_if_not_exists unique_index(:registrations, [:user_id, :provider, :uid])    end  end diff --git a/priv/repo/migrations/20190325185009_create_notification_id_index.exs b/priv/repo/migrations/20190325185009_create_notification_id_index.exs index a6ab38d02..01cb30559 100644 --- a/priv/repo/migrations/20190325185009_create_notification_id_index.exs +++ b/priv/repo/migrations/20190325185009_create_notification_id_index.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.CreateNotificationIdIndex do    use Ecto.Migration    def change do -  create index(:notifications, ["id desc nulls last"]) +    create_if_not_exists index(:notifications, ["id desc nulls last"])    end  end diff --git a/priv/repo/migrations/20190328053912_create_scheduled_activities.exs b/priv/repo/migrations/20190328053912_create_scheduled_activities.exs index dd737e25a..8a01bbdb1 100644 --- a/priv/repo/migrations/20190328053912_create_scheduled_activities.exs +++ b/priv/repo/migrations/20190328053912_create_scheduled_activities.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Repo.Migrations.CreateScheduledActivities do    use Ecto.Migration    def change do -    create table(:scheduled_activities) do +    create_if_not_exists table(:scheduled_activities) do        add(:user_id, references(:users, type: :uuid, on_delete: :delete_all))        add(:scheduled_at, :naive_datetime, null: false)        add(:params, :map, null: false) @@ -10,7 +10,7 @@ defmodule Pleroma.Repo.Migrations.CreateScheduledActivities do        timestamps()      end -    create(index(:scheduled_activities, [:scheduled_at])) -    create(index(:scheduled_activities, [:user_id])) +    create_if_not_exists(index(:scheduled_activities, [:scheduled_at])) +    create_if_not_exists(index(:scheduled_activities, [:user_id]))    end  end diff --git a/priv/repo/migrations/20190403131720_add_oauth_token_indexes.exs b/priv/repo/migrations/20190403131720_add_oauth_token_indexes.exs index ebcd29389..ab1bf2165 100644 --- a/priv/repo/migrations/20190403131720_add_oauth_token_indexes.exs +++ b/priv/repo/migrations/20190403131720_add_oauth_token_indexes.exs @@ -2,8 +2,8 @@ defmodule Pleroma.Repo.Migrations.AddOauthTokenIndexes do    use Ecto.Migration    def change do -    create(unique_index(:oauth_tokens, [:token])) -    create(index(:oauth_tokens, [:app_id])) -    create(index(:oauth_tokens, [:user_id])) +    create_if_not_exists(unique_index(:oauth_tokens, [:token])) +    create_if_not_exists(index(:oauth_tokens, [:app_id])) +    create_if_not_exists(index(:oauth_tokens, [:user_id]))    end  end diff --git a/priv/repo/migrations/20190405160700_add_index_on_subscribers.exs b/priv/repo/migrations/20190405160700_add_index_on_subscribers.exs index 232f75c92..460dafb1b 100644 --- a/priv/repo/migrations/20190405160700_add_index_on_subscribers.exs +++ b/priv/repo/migrations/20190405160700_add_index_on_subscribers.exs @@ -1,6 +1,6 @@  defmodule Pleroma.Repo.Migrations.AddIndexOnSubscribers do    use Ecto.Migration -   +    @disable_ddl_transaction true    def change do      create index(:users, ["(info->'subscribers')"], name: :users_subscribers_index, using: :gin, concurrently: true) diff --git a/priv/repo/migrations/20190408123347_create_conversations.exs b/priv/repo/migrations/20190408123347_create_conversations.exs index 0e0af30ae..7b7d89da7 100644 --- a/priv/repo/migrations/20190408123347_create_conversations.exs +++ b/priv/repo/migrations/20190408123347_create_conversations.exs @@ -6,12 +6,12 @@ defmodule Pleroma.Repo.Migrations.CreateConversations do    use Ecto.Migration    def change do -    create table(:conversations) do +    create_if_not_exists table(:conversations) do        add(:ap_id, :string, null: false)        timestamps()      end -    create table(:conversation_participations) do +    create_if_not_exists table(:conversation_participations) do        add(:user_id, references(:users, type: :uuid, on_delete: :delete_all))        add(:conversation_id, references(:conversations, on_delete: :delete_all))        add(:read, :boolean, default: false) @@ -19,8 +19,8 @@ defmodule Pleroma.Repo.Migrations.CreateConversations do        timestamps()      end -    create index(:conversation_participations, [:conversation_id]) -    create unique_index(:conversation_participations, [:user_id, :conversation_id]) -    create unique_index(:conversations, [:ap_id]) +    create_if_not_exists index(:conversation_participations, [:conversation_id]) +    create_if_not_exists unique_index(:conversation_participations, [:user_id, :conversation_id]) +    create_if_not_exists unique_index(:conversations, [:ap_id])    end  end diff --git a/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs b/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs index 1ce688c52..b5ca2fc0f 100644 --- a/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs +++ b/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddParticipationUpdatedAtIndex do    use Ecto.Migration    def change do -    create index(:conversation_participations, ["updated_at desc"]) +    create_if_not_exists index(:conversation_participations, ["updated_at desc"])    end  end diff --git a/priv/repo/migrations/20190411094120_add_index_on_user_info_deactivated.exs b/priv/repo/migrations/20190411094120_add_index_on_user_info_deactivated.exs index d701dcecc..c19427f12 100644 --- a/priv/repo/migrations/20190411094120_add_index_on_user_info_deactivated.exs +++ b/priv/repo/migrations/20190411094120_add_index_on_user_info_deactivated.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddIndexOnUserInfoDeactivated do    use Ecto.Migration    def change do -    create(index(:users, ["(info->'deactivated')"], name: :users_deactivated_index, using: :gin)) +    create_if_not_exists(index(:users, ["(info->'deactivated')"], name: :users_deactivated_index, using: :gin))    end  end diff --git a/priv/repo/migrations/20190413082658_create_bookmarks.exs b/priv/repo/migrations/20190413082658_create_bookmarks.exs index 38b108158..cfd025fc5 100644 --- a/priv/repo/migrations/20190413082658_create_bookmarks.exs +++ b/priv/repo/migrations/20190413082658_create_bookmarks.exs @@ -2,13 +2,13 @@ defmodule Pleroma.Repo.Migrations.CreateBookmarks do    use Ecto.Migration    def change do -    create table(:bookmarks) do +    create_if_not_exists table(:bookmarks) do        add(:user_id, references(:users, type: :uuid, on_delete: :delete_all))        add(:activity_id, references(:activities, type: :uuid, on_delete: :delete_all))        timestamps()      end -    create(unique_index(:bookmarks, [:user_id, :activity_id])) +    create_if_not_exists(unique_index(:bookmarks, [:user_id, :activity_id]))    end  end diff --git a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs index 134b7c6f7..ce4590954 100644 --- a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs +++ b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs @@ -6,7 +6,7 @@ defmodule Pleroma.Repo.Migrations.MigrateOldBookmarks do    alias Pleroma.User    alias Pleroma.Repo -  def change do +  def up do      query =        from(u in User,          where: u.local == true, @@ -18,7 +18,7 @@ defmodule Pleroma.Repo.Migrations.MigrateOldBookmarks do      |> Enum.each(fn %{id: user_id, bookmarks: bookmarks} ->        Enum.each(bookmarks, fn ap_id ->          activity = Activity.get_create_by_object_ap_id(ap_id) -	unless is_nil(activity), do: {:ok, _} = Bookmark.create(user_id, activity.id) +	      unless is_nil(activity), do: {:ok, _} = Bookmark.create(user_id, activity.id)        end)      end) @@ -26,4 +26,10 @@ defmodule Pleroma.Repo.Migrations.MigrateOldBookmarks do        remove(:bookmarks)      end    end + +  def down do +    alter table(:users) do +      add :bookmarks, {:array, :string}, null: false, default: [] +    end +  end  end diff --git a/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs b/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs index 9b274695e..d4de51691 100644 --- a/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs +++ b/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs @@ -3,6 +3,6 @@ defmodule Pleroma.Repo.Migrations.AddFTSIndexToObjects do    def change do      drop_if_exists index(:activities, ["(to_tsvector('english', data->'object'->>'content'))"], using: :gin, name: :activities_fts) -    create index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts) +    create_if_not_exists index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts)    end  end diff --git a/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs b/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs index 449f2a3d4..44a266985 100644 --- a/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs +++ b/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddRefreshTokenIndexToToken do    use Ecto.Migration    def change do -    create(unique_index(:oauth_tokens, [:refresh_token])) +    create_if_not_exists(unique_index(:oauth_tokens, [:refresh_token]))    end  end diff --git a/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs b/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs index 2ffb88cc9..246b70cfb 100644 --- a/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs +++ b/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs @@ -1,9 +1,15 @@  defmodule Pleroma.Repo.Migrations.ChangeHideColumnInFilterTable do    use Ecto.Migration -  def change do +  def up do      alter table(:filters) do        modify :hide, :boolean, default: false      end    end + +  def down do +    alter table(:filters) do +      modify :hide, :boolean +    end +  end  end diff --git a/priv/repo/migrations/20190515222404_add_thread_visibility_function.exs b/priv/repo/migrations/20190515222404_add_thread_visibility_function.exs index dc9abc998..5184c0c48 100644 --- a/priv/repo/migrations/20190515222404_add_thread_visibility_function.exs +++ b/priv/repo/migrations/20190515222404_add_thread_visibility_function.exs @@ -68,6 +68,6 @@ defmodule Pleroma.Repo.Migrations.AddThreadVisibilityFunction do    end    def down do -    execute("drop function thread_visibility(actor varchar, activity_id varchar)") +    execute("drop function if exists thread_visibility(actor varchar, activity_id varchar)")    end  end diff --git a/priv/repo/migrations/20190518032627_create_config.exs b/priv/repo/migrations/20190518032627_create_config.exs index 1e4e3c689..cb65f3939 100644 --- a/priv/repo/migrations/20190518032627_create_config.exs +++ b/priv/repo/migrations/20190518032627_create_config.exs @@ -2,12 +2,12 @@ defmodule Pleroma.Repo.Migrations.CreateConfig do    use Ecto.Migration    def change do -    create table(:config) do +    create_if_not_exists table(:config) do        add(:key, :string)        add(:value, :binary)        timestamps()      end -    create(unique_index(:config, :key)) +    create_if_not_exists(unique_index(:config, :key))    end  end diff --git a/priv/repo/migrations/20190525071417_add_non_follows_and_non_followers_fields_to_notification_settings.exs b/priv/repo/migrations/20190525071417_add_non_follows_and_non_followers_fields_to_notification_settings.exs index a88b0ea61..505f0acb2 100644 --- a/priv/repo/migrations/20190525071417_add_non_follows_and_non_followers_fields_to_notification_settings.exs +++ b/priv/repo/migrations/20190525071417_add_non_follows_and_non_followers_fields_to_notification_settings.exs @@ -1,10 +1,12 @@  defmodule Pleroma.Repo.Migrations.AddNonFollowsAndNonFollowersFieldsToNotificationSettings do    use Ecto.Migration -  def change do +  def up do      execute("""      update users set info = jsonb_set(info, '{notification_settings}', '{"local": true, "remote": true, "follows": true, "followers": true, "non_follows": true, "non_followers": true}')      where local=true      """)    end + +  def down, do: :ok  end diff --git a/priv/repo/migrations/20190603115238_add_index_on_activities_local.exs b/priv/repo/migrations/20190603115238_add_index_on_activities_local.exs index 89daa9705..7e6643497 100644 --- a/priv/repo/migrations/20190603115238_add_index_on_activities_local.exs +++ b/priv/repo/migrations/20190603115238_add_index_on_activities_local.exs @@ -2,6 +2,6 @@ defmodule Pleroma.Repo.Migrations.AddIndexOnActivitiesLocal do    use Ecto.Migration    def change do -    create(index("activities", [:local])) +    create_if_not_exists(index("activities", [:local]))    end  end diff --git a/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs b/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs index c915a0213..93d57a249 100644 --- a/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs +++ b/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs @@ -3,6 +3,6 @@ defmodule Pleroma.Repo.Migrations.AddTagIndexToObjects do    def change do      drop_if_exists index(:activities, ["(data #> '{\"object\",\"tag\"}')"], using: :gin, name: :activities_tags) -    create index(:objects, ["(data->'tag')"], using: :gin, name: :objects_tags) +    create_if_not_exists index(:objects, ["(data->'tag')"], using: :gin, name: :objects_tags)    end  end diff --git a/priv/repo/migrations/20190622151019_add_group_key_to_config.exs b/priv/repo/migrations/20190622151019_add_group_key_to_config.exs index d7a3785d0..867dafaf3 100644 --- a/priv/repo/migrations/20190622151019_add_group_key_to_config.exs +++ b/priv/repo/migrations/20190622151019_add_group_key_to_config.exs @@ -6,7 +6,7 @@ defmodule Pleroma.Repo.Migrations.AddGroupKeyToConfig do        add(:group, :string)      end -    drop(unique_index("config", :key)) -    create(unique_index("config", [:group, :key])) +    drop_if_exists(unique_index("config", :key)) +    create_if_not_exists(unique_index("config", [:group, :key]))    end  end diff --git a/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs b/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs index b6a24441a..6227769dc 100644 --- a/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs +++ b/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs @@ -14,7 +14,7 @@ defmodule Pleroma.Repo.Migrations.AddFtsIndexToObjectsTwo do        return new;      end      $$ LANGUAGE plpgsql") -    execute("create index objects_fts on objects using RUM (fts_content rum_tsvector_addon_ops, inserted_at) with (attach = 'inserted_at', to = 'fts_content');") +    execute("create index if not exists objects_fts on objects using RUM (fts_content rum_tsvector_addon_ops, inserted_at) with (attach = 'inserted_at', to = 'fts_content');")      execute("CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE ON objects      FOR EACH ROW EXECUTE PROCEDURE objects_fts_update()") @@ -23,12 +23,12 @@ defmodule Pleroma.Repo.Migrations.AddFtsIndexToObjectsTwo do    end    def down do -    execute "drop index objects_fts" -    execute "drop trigger tsvectorupdate on objects" -    execute "drop function objects_fts_update()" +    execute "drop index if exists objects_fts" +    execute "drop trigger if exists tsvectorupdate on objects" +    execute "drop function if exists objects_fts_update()"      alter table(:objects) do        remove(:fts_content, :tsvector)      end -    create index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts) +    create_if_not_exists index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts)    end  end | 
