diff options
Diffstat (limited to 'priv/repo/migrations')
22 files changed, 290 insertions, 11 deletions
| diff --git a/priv/repo/migrations/20180516144508_add_trigram_extension.exs b/priv/repo/migrations/20180516144508_add_trigram_extension.exs index b14104cc4..21ead8758 100644 --- a/priv/repo/migrations/20180516144508_add_trigram_extension.exs +++ b/priv/repo/migrations/20180516144508_add_trigram_extension.exs @@ -7,13 +7,13 @@ defmodule Pleroma.Repo.Migrations.AddTrigramExtension do    require Logger    def up do -    Logger.warn("ATTENTION ATTENTION ATTENTION\n") +    Logger.warning("ATTENTION ATTENTION ATTENTION\n") -    Logger.warn( +    Logger.warning(        "This will try to create the pg_trgm extension on your database. If your database user does NOT have the necessary rights, you will have to do it manually and re-run the migrations.\nYou can probably do this by running the following:\n"      ) -    Logger.warn( +    Logger.warning(        "sudo -u postgres psql pleroma_dev -c \"create extension if not exists pg_trgm\"\n"      ) diff --git a/priv/repo/migrations/20180516154905_create_user_trigram_index.exs b/priv/repo/migrations/20180516154905_create_user_trigram_index.exs index 68878e1e2..049b10175 100644 --- a/priv/repo/migrations/20180516154905_create_user_trigram_index.exs +++ b/priv/repo/migrations/20180516154905_create_user_trigram_index.exs @@ -7,7 +7,10 @@ defmodule Pleroma.Repo.Migrations.CreateUserTrigramIndex do    def change do      create_if_not_exists( -      index(:users, ["(nickname || name) gist_trgm_ops"], name: :users_trigram_index, using: :gist) +      index(:users, ["(nickname || name) gist_trgm_ops"], +        name: :users_trigram_index, +        using: :gist +      )      )    end  end diff --git a/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs b/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs index b0f5238a0..3958ea262 100644 --- a/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs +++ b/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs @@ -20,7 +20,10 @@ defmodule Pleroma.Repo.Migrations.FixUserTrigramIndex do      drop_if_exists(index(:users, [], name: :users_trigram_index))      create_if_not_exists( -      index(:users, ["(nickname || name) gist_trgm_ops"], name: :users_trigram_index, using: :gist) +      index(:users, ["(nickname || name) gist_trgm_ops"], +        name: :users_trigram_index, +        using: :gist +      )      )    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 00c71e95f..a3cb17f3b 100644 --- a/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs +++ b/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs @@ -7,7 +7,10 @@ defmodule Pleroma.Repo.Migrations.AddTagIndexToObjects do    def change do      drop_if_exists( -      index(:activities, ["(data #> '{\"object\",\"tag\"}')"], using: :gin, name: :activities_tags) +      index(:activities, ["(data #> '{\"object\",\"tag\"}')"], +        using: :gin, +        name: :activities_tags +      )      )      create_if_not_exists(index(:objects, ["(data->'tag')"], using: :gin, name: :objects_tags)) diff --git a/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs b/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs index 44a3d6d2d..3a1bf677b 100644 --- a/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs +++ b/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs @@ -26,7 +26,7 @@ defmodule Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData do          |> Pleroma.Repo.update()        user -> -        Logger.warn("User #{user.id} / #{user.nickname} does not seem to have source_data") +        Logger.warning("User #{user.id} / #{user.nickname} does not seem to have source_data")      end)    end  end diff --git a/priv/repo/migrations/20191118084500_data_migration_populate_user_relationships.exs b/priv/repo/migrations/20191118084500_data_migration_populate_user_relationships.exs index 571a75160..6fa671a79 100644 --- a/priv/repo/migrations/20191118084500_data_migration_populate_user_relationships.exs +++ b/priv/repo/migrations/20191118084500_data_migration_populate_user_relationships.exs @@ -63,7 +63,7 @@ defmodule Pleroma.Repo.Migrations.DataMigrationPopulateUserRelationships do              ON CONFLICT (source_id, relationship_type, target_id) DO NOTHING              """)            else -            _ -> Logger.warn("Unresolved #{field} reference: (#{source_uuid}, #{target_id})") +            _ -> Logger.warning("Unresolved #{field} reference: (#{source_uuid}, #{target_id})")            end          end        end diff --git a/priv/repo/migrations/20200811143147_ap_id_not_null.exs b/priv/repo/migrations/20200811143147_ap_id_not_null.exs index a160daef4..dbc226663 100644 --- a/priv/repo/migrations/20200811143147_ap_id_not_null.exs +++ b/priv/repo/migrations/20200811143147_ap_id_not_null.exs @@ -8,7 +8,7 @@ defmodule Pleroma.Repo.Migrations.ApIdNotNull do    require Logger    def up do -    Logger.warn( +    Logger.warning(        "If this migration fails please open an issue at https://git.pleroma.social/pleroma/pleroma/-/issues/new \n"      ) diff --git a/priv/repo/migrations/20200919182636_remoteip_plug_rename.exs b/priv/repo/migrations/20200919182636_remoteip_plug_rename.exs index b9a8fd0e1..69627d3d8 100644 --- a/priv/repo/migrations/20200919182636_remoteip_plug_rename.exs +++ b/priv/repo/migrations/20200919182636_remoteip_plug_rename.exs @@ -9,7 +9,9 @@ defmodule Pleroma.Repo.Migrations.RemoteipPlugRename do    def up do      config = -      from(c in Pleroma.ConfigDB, where: c.group == ^:pleroma and c.key == ^Pleroma.Plugs.RemoteIp) +      from(c in Pleroma.ConfigDB, +        where: c.group == ^:pleroma and c.key == ^Pleroma.Plugs.RemoteIp +      )        |> Pleroma.Repo.one()      if config do diff --git a/priv/repo/migrations/20220203224011_create_rules.exs b/priv/repo/migrations/20220203224011_create_rules.exs new file mode 100644 index 000000000..16f29ca53 --- /dev/null +++ b/priv/repo/migrations/20220203224011_create_rules.exs @@ -0,0 +1,12 @@ +defmodule Pleroma.Repo.Migrations.CreateRules do +  use Ecto.Migration + +  def change do +    create_if_not_exists table(:rules) do +      add(:priority, :integer, default: 0, null: false) +      add(:text, :text, null: false) + +      timestamps() +    end +  end +end diff --git a/priv/repo/migrations/20220319000000_add_status_to_notifications_enum.exs b/priv/repo/migrations/20220319000000_add_status_to_notifications_enum.exs new file mode 100644 index 000000000..c3bc85894 --- /dev/null +++ b/priv/repo/migrations/20220319000000_add_status_to_notifications_enum.exs @@ -0,0 +1,51 @@ +defmodule Pleroma.Repo.Migrations.AddStatusToNotificationsEnum do +  use Ecto.Migration + +  @disable_ddl_transaction true + +  def up do +    """ +    alter type notification_type add value 'status' +    """ +    |> execute() +  end + +  def down do +    alter table(:notifications) do +      modify(:type, :string) +    end + +    """ +    delete from notifications where type = 'status' +    """ +    |> 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', +      'pleroma:report', +      'poll', +      'update' +    ) +    """ +    |> execute() + +    """ +    alter table notifications +    alter column type type notification_type using (type::notification_type) +    """ +    |> execute() +  end +end diff --git a/priv/repo/migrations/20220527134341_add_quote_url_index_to_objects.exs b/priv/repo/migrations/20220527134341_add_quote_url_index_to_objects.exs new file mode 100644 index 000000000..d77db34cd --- /dev/null +++ b/priv/repo/migrations/20220527134341_add_quote_url_index_to_objects.exs @@ -0,0 +1,17 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddQuoteUrlIndexToObjects do +  use Ecto.Migration +  @disable_ddl_transaction true + +  def change do +    create_if_not_exists( +      index(:objects, ["(data->'quoteUrl')"], +        name: :objects_quote_url, +        concurrently: true +      ) +    ) +  end +end diff --git a/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs b/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs index 43bc7100b..580c38841 100644 --- a/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs +++ b/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs @@ -2,12 +2,20 @@  # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only +defmodule User do +  use Ecto.Schema + +  schema "users" do +    field(:keys, :string) +    field(:local, :boolean, default: true) +  end +end +  defmodule Pleroma.Repo.Migrations.GenerateUnsetUserKeys do    use Ecto.Migration    import Ecto.Query    alias Pleroma.Keys    alias Pleroma.Repo -  alias Pleroma.User    def change do      query = diff --git a/priv/repo/migrations/20231107200724_consolidate_email_queues.exs b/priv/repo/migrations/20231107200724_consolidate_email_queues.exs new file mode 100644 index 000000000..63f5af369 --- /dev/null +++ b/priv/repo/migrations/20231107200724_consolidate_email_queues.exs @@ -0,0 +1,9 @@ +defmodule Pleroma.Repo.Migrations.ConsolidateEmailQueues do +  use Ecto.Migration + +  def change do +    execute( +      "UPDATE oban_jobs SET queue = 'mailer' WHERE queue in ('digest_emails', 'new_users_digest')" +    ) +  end +end diff --git a/priv/repo/migrations/20240207035927_create_rich_media_card.exs b/priv/repo/migrations/20240207035927_create_rich_media_card.exs new file mode 100644 index 000000000..b5e48bccb --- /dev/null +++ b/priv/repo/migrations/20240207035927_create_rich_media_card.exs @@ -0,0 +1,14 @@ +defmodule Pleroma.Repo.Migrations.CreateRichMediaCard do +  use Ecto.Migration + +  def change do +    create table(:rich_media_card) do +      add(:url_hash, :bytea) +      add(:fields, :map) + +      timestamps() +    end + +    create(unique_index(:rich_media_card, [:url_hash])) +  end +end diff --git a/priv/repo/migrations/20240223165000_create_bookmark_folders.exs b/priv/repo/migrations/20240223165000_create_bookmark_folders.exs new file mode 100644 index 000000000..016916968 --- /dev/null +++ b/priv/repo/migrations/20240223165000_create_bookmark_folders.exs @@ -0,0 +1,27 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2024 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.CreateBookmarkFolders do +  use Ecto.Migration + +  def change do +    create_if_not_exists table(:bookmark_folders, primary_key: false) do +      add(:id, :uuid, primary_key: true) +      add(:name, :string, null: false) +      add(:emoji, :string) +      add(:user_id, references(:users, type: :uuid, on_delete: :delete_all)) + +      timestamps() +    end + +    alter table(:bookmarks) do +      add_if_not_exists( +        :folder_id, +        references(:bookmark_folders, type: :uuid, on_delete: :nilify_all) +      ) +    end + +    create_if_not_exists(unique_index(:bookmark_folders, [:user_id, :name])) +  end +end diff --git a/priv/repo/migrations/20240406000000_add_hint_to_rules.exs b/priv/repo/migrations/20240406000000_add_hint_to_rules.exs new file mode 100644 index 000000000..273290560 --- /dev/null +++ b/priv/repo/migrations/20240406000000_add_hint_to_rules.exs @@ -0,0 +1,13 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2024 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddHintToRules do +  use Ecto.Migration + +  def change do +    alter table(:rules) do +      add_if_not_exists(:hint, :text) +    end +  end +end diff --git a/priv/repo/migrations/20240527144418_oban_queues_refactor.exs b/priv/repo/migrations/20240527144418_oban_queues_refactor.exs new file mode 100644 index 000000000..64ee28dfd --- /dev/null +++ b/priv/repo/migrations/20240527144418_oban_queues_refactor.exs @@ -0,0 +1,32 @@ +defmodule Pleroma.Repo.Migrations.ObanQueuesRefactor do +  use Ecto.Migration + +  @changed_queues [ +    {"attachments_cleanup", "slow"}, +    {"mailer", "background"}, +    {"mute_expire", "background"}, +    {"poll_notifications", "background"}, +    {"activity_expiration", "slow"}, +    {"filter_expiration", "background"}, +    {"token_expiration", "background"}, +    {"remote_fetcher", "background"}, +    {"rich_media_expiration", "background"} +  ] + +  def up do +    Enum.each(@changed_queues, fn {old, new} -> +      execute("UPDATE oban_jobs SET queue = '#{new}' WHERE queue = '#{old}';") +    end) + +    # Handled special as reverting this would not be ideal and leaving it is harmless +    execute( +      "UPDATE oban_jobs SET queue = 'federator_outgoing' WHERE queue = 'scheduled_activities';" +    ) +  end + +  def down do +    # Just move all slow queue jobs to background queue if we are reverting +    # as the slow queue will not be processing jobs +    execute("UPDATE oban_jobs SET queue = 'background' WHERE queue = 'slow';") +  end +end diff --git a/priv/repo/migrations/20240530011739_add_missing_foreign_keys.exs b/priv/repo/migrations/20240530011739_add_missing_foreign_keys.exs new file mode 100644 index 000000000..158f9701b --- /dev/null +++ b/priv/repo/migrations/20240530011739_add_missing_foreign_keys.exs @@ -0,0 +1,20 @@ +defmodule Pleroma.Repo.Migrations.AddMissingForeignKeys do +  use Ecto.Migration + +  def change do +    create_if_not_exists(index(:announcement_read_relationships, :announcement_id)) +    create_if_not_exists(index(:bookmarks, :activity_id)) +    create_if_not_exists(index(:bookmarks, :folder_id)) +    create_if_not_exists(index(:chats, :recipient)) +    create_if_not_exists(index(:mfa_tokens, :authorization_id)) +    create_if_not_exists(index(:mfa_tokens, :user_id)) +    create_if_not_exists(index(:notifications, :activity_id)) +    create_if_not_exists(index(:oauth_authorizations, :app_id)) +    create_if_not_exists(index(:oauth_authorizations, :user_id)) +    create_if_not_exists(index(:password_reset_tokens, :user_id)) +    create_if_not_exists(index(:push_subscriptions, :token_id)) +    create_if_not_exists(index(:report_notes, :activity_id)) +    create_if_not_exists(index(:report_notes, :user_id)) +    create_if_not_exists(index(:user_notes, :target_id)) +  end +end diff --git a/priv/repo/migrations/20240608003957_upgrade_oban_jobs_to_v12.exs b/priv/repo/migrations/20240608003957_upgrade_oban_jobs_to_v12.exs new file mode 100644 index 000000000..ed5bf4ebb --- /dev/null +++ b/priv/repo/migrations/20240608003957_upgrade_oban_jobs_to_v12.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.UpgradeObanJobsToV12 do +  use Ecto.Migration + +  def up, do: Oban.Migrations.up(version: 12) + +  def down, do: Oban.Migrations.down(version: 12) +end diff --git a/priv/repo/migrations/20240619141319_deprecate_config_db_logger.exs b/priv/repo/migrations/20240619141319_deprecate_config_db_logger.exs new file mode 100644 index 000000000..19ef0a2bb --- /dev/null +++ b/priv/repo/migrations/20240619141319_deprecate_config_db_logger.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.DeprecateConfigDBLogger do +  use Ecto.Migration + +  def change do +    execute("DELETE FROM config WHERE config.group = ':logger'") +  end +end diff --git a/priv/repo/migrations/20240622175346_backup_refactor.exs b/priv/repo/migrations/20240622175346_backup_refactor.exs new file mode 100644 index 000000000..5dfc55789 --- /dev/null +++ b/priv/repo/migrations/20240622175346_backup_refactor.exs @@ -0,0 +1,19 @@ +defmodule Pleroma.Repo.Migrations.BackupRefactor do +  use Ecto.Migration + +  def up do +    alter table("backups") do +      remove(:state) +      remove(:processed_number) +      add(:tempdir, :string) +    end +  end + +  def down do +    alter table("backups") do +      add(:state, :integer, default: 5) +      add(:processed_number, :integer, default: 0) +      remove(:tempdir) +    end +  end +end diff --git a/priv/repo/migrations/20240729163838_publisher_job_change.exs b/priv/repo/migrations/20240729163838_publisher_job_change.exs new file mode 100644 index 000000000..cbea18205 --- /dev/null +++ b/priv/repo/migrations/20240729163838_publisher_job_change.exs @@ -0,0 +1,32 @@ +defmodule Pleroma.Repo.Migrations.PublisherJobChange do +  use Ecto.Migration + +  alias Pleroma.Activity +  alias Pleroma.Repo +  import Ecto.Query + +  def up do +    query = +      from(j in Oban.Job, +        where: j.worker == "Pleroma.Workers.PublisherWorker", +        where: j.state in ["available", "retryable"] +      ) + +    jobs = Repo.all(query) + +    Enum.each(jobs, fn job -> +      args = job.args + +      case Activity.get_by_ap_id(args["id"]) do +        nil -> +          :ok + +        %Activity{id: activity_id} -> +          updated_args = Map.put(args, "activity_id", activity_id) + +          Pleroma.Workers.PublisherWorker.new(updated_args) +          |> Oban.insert() +      end +    end) +  end +end | 
