diff options
| author | Alex Gleason <alex@alexgleason.me> | 2020-11-14 19:48:47 -0600 | 
|---|---|---|
| committer | Alex Gleason <alex@alexgleason.me> | 2020-11-14 19:48:47 -0600 | 
| commit | 9546c1444c2c8c4abc9bcb35b6a8ff360ddc83af (patch) | |
| tree | cc6b9add45f34878b1ce053b6a408e059768fa6a /priv/repo/migrations | |
| parent | dc38dc847207e4724265fbeb111d0a236b75f93f (diff) | |
| parent | 28da36975dc325bb577ee81fb791fbdc7ec3e7e2 (diff) | |
| download | pleroma-9546c1444c2c8c4abc9bcb35b6a8ff360ddc83af.tar.gz pleroma-9546c1444c2c8c4abc9bcb35b6a8ff360ddc83af.zip | |
Merge remote-tracking branch 'upstream/develop' into registration-workflow
Diffstat (limited to 'priv/repo/migrations')
7 files changed, 164 insertions, 0 deletions
| diff --git a/priv/repo/migrations/20200831114918_remove_unread_conversation_count_from_user.exs b/priv/repo/migrations/20200831114918_remove_unread_conversation_count_from_user.exs new file mode 100644 index 000000000..b7bdb9166 --- /dev/null +++ b/priv/repo/migrations/20200831114918_remove_unread_conversation_count_from_user.exs @@ -0,0 +1,38 @@ +defmodule Pleroma.Repo.Migrations.RemoveUnreadConversationCountFromUser do +  use Ecto.Migration +  import Ecto.Query +  alias Pleroma.Repo + +  def up do +    alter table(:users) do +      remove_if_exists(:unread_conversation_count, :integer) +    end +  end + +  def down do +    alter table(:users) do +      add_if_not_exists(:unread_conversation_count, :integer, default: 0) +    end + +    flush() +    recalc_unread_conversation_count() +  end + +  defp recalc_unread_conversation_count do +    participations_subquery = +      from( +        p in "conversation_participations", +        where: p.read == false, +        group_by: p.user_id, +        select: %{user_id: p.user_id, unread_conversation_count: count(p.id)} +      ) + +    from( +      u in "users", +      join: p in subquery(participations_subquery), +      on: p.user_id == u.id, +      update: [set: [unread_conversation_count: p.unread_conversation_count]] +    ) +    |> Repo.update_all([]) +  end +end diff --git a/priv/repo/migrations/20200831115854_add_unread_index_to_conversation_participation.exs b/priv/repo/migrations/20200831115854_add_unread_index_to_conversation_participation.exs new file mode 100644 index 000000000..68771c655 --- /dev/null +++ b/priv/repo/migrations/20200831115854_add_unread_index_to_conversation_participation.exs @@ -0,0 +1,12 @@ +defmodule Pleroma.Repo.Migrations.AddUnreadIndexToConversationParticipation do +  use Ecto.Migration + +  def change do +    create( +      index(:conversation_participations, [:user_id], +        where: "read = false", +        name: "unread_conversation_participation_count_index" +      ) +    ) +  end +end diff --git a/priv/repo/migrations/20200831152600_add_pleroma_report_to_enum_for_notifications.exs b/priv/repo/migrations/20200831152600_add_pleroma_report_to_enum_for_notifications.exs new file mode 100644 index 000000000..01fb90459 --- /dev/null +++ b/priv/repo/migrations/20200831152600_add_pleroma_report_to_enum_for_notifications.exs @@ -0,0 +1,48 @@ +defmodule Pleroma.Repo.Migrations.AddPleromaReportTypeToEnumForNotifications do +  use Ecto.Migration + +  @disable_ddl_transaction true + +  def up do +    """ +    alter type notification_type add value 'pleroma:report' +    """ +    |> execute() +  end + +  def down do +    alter table(:notifications) do +      modify(:type, :string) +    end + +    """ +    delete from notifications where type = 'pleroma:report' +    """ +    |> execute() + +    """ +    drop type if exists notification_type +    """ +    |> execute() + +    """ +    create type notification_type as enum ( +      'follow', +      'follow_request', +      'mention', +      'move', +      'pleroma:emoji_reaction', +      'pleroma:chat_mention', +      'reblog', +      'favourite' +    ) +    """ +    |> execute() + +    """ +    alter table notifications  +    alter column type type notification_type using (type::notification_type) +    """ +    |> execute() +  end +end diff --git a/priv/repo/migrations/20200831192323_create_backups.exs b/priv/repo/migrations/20200831192323_create_backups.exs new file mode 100644 index 000000000..3ac5889e2 --- /dev/null +++ b/priv/repo/migrations/20200831192323_create_backups.exs @@ -0,0 +1,17 @@ +defmodule Pleroma.Repo.Migrations.CreateBackups do +  use Ecto.Migration + +  def change do +    create_if_not_exists table(:backups) do +      add(:user_id, references(:users, type: :uuid, on_delete: :delete_all)) +      add(:file_name, :string, null: false) +      add(:content_type, :string, null: false) +      add(:processed, :boolean, null: false, default: false) +      add(:file_size, :bigint) + +      timestamps() +    end + +    create_if_not_exists(index(:backups, [:user_id])) +  end +end diff --git a/priv/repo/migrations/20201013141127_refactor_locked_user_field.exs b/priv/repo/migrations/20201013141127_refactor_locked_user_field.exs new file mode 100644 index 000000000..6cd23dbac --- /dev/null +++ b/priv/repo/migrations/20201013141127_refactor_locked_user_field.exs @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.RefactorLockedUserField do +  use Ecto.Migration + +  def up do +    execute("ALTER TABLE users RENAME COLUMN locked TO is_locked;") +  end + +  def down do +    execute("ALTER TABLE users RENAME COLUMN is_locked TO locked;") +  end +end diff --git a/priv/repo/migrations/20201013144052_refactor_discoverable_user_field.exs b/priv/repo/migrations/20201013144052_refactor_discoverable_user_field.exs new file mode 100644 index 000000000..3fdc190cc --- /dev/null +++ b/priv/repo/migrations/20201013144052_refactor_discoverable_user_field.exs @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.RefactorDiscoverableUserField do +  use Ecto.Migration + +  def up do +    execute("ALTER TABLE users RENAME COLUMN discoverable TO is_discoverable;") +  end + +  def down do +    execute("ALTER TABLE users RENAME COLUMN is_discoverable TO discoverable;") +  end +end diff --git a/priv/repo/migrations/20201113060459_remove_purge_expired_activity_worker_from_oban_config.exs b/priv/repo/migrations/20201113060459_remove_purge_expired_activity_worker_from_oban_config.exs new file mode 100644 index 000000000..fe31f4442 --- /dev/null +++ b/priv/repo/migrations/20201113060459_remove_purge_expired_activity_worker_from_oban_config.exs @@ -0,0 +1,19 @@ +defmodule Pleroma.Repo.Migrations.RemovePurgeExpiredActivityWorkerFromObanConfig do +  use Ecto.Migration + +  def change do +    with %Pleroma.ConfigDB{} = config <- +           Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Oban}), +         crontab when is_list(crontab) <- config.value[:crontab], +         index when is_integer(index) <- +           Enum.find_index(crontab, fn {_, worker} -> +             worker == Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker +           end) do +      updated_value = Keyword.put(config.value, :crontab, List.delete_at(crontab, index)) + +      config +      |> Ecto.Changeset.change(value: updated_value) +      |> Pleroma.Repo.update() +    end +  end +end | 
