diff options
Diffstat (limited to 'priv/repo/migrations')
4 files changed, 108 insertions, 0 deletions
| diff --git a/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs b/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs new file mode 100644 index 000000000..06d7f7272 --- /dev/null +++ b/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs @@ -0,0 +1,19 @@ +defmodule Pleroma.Repo.Migrations.RenameNotificationPrivacyOption do +  use Ecto.Migration + +  def up do +    execute( +      "UPDATE users SET notification_settings = notification_settings - 'privacy_option' || jsonb_build_object('hide_notification_contents', notification_settings->'privacy_option') +where notification_settings ? 'privacy_option' +and local" +    ) +  end + +  def down do +    execute( +      "UPDATE users SET notification_settings = notification_settings - 'hide_notification_contents' || jsonb_build_object('privacy_option', notification_settings->'hide_notification_contents') +where notification_settings ? 'hide_notification_contents' +and local" +    ) +  end +end diff --git a/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs b/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs new file mode 100644 index 000000000..c54bb2511 --- /dev/null +++ b/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs @@ -0,0 +1,27 @@ +defmodule Elixir.Pleroma.Repo.Migrations.Oban20ConfigChanges do +  use Ecto.Migration +  import Ecto.Query +  alias Pleroma.ConfigDB +  alias Pleroma.Repo + +  def change do +    config_entry = +      from(c in ConfigDB, where: c.group == ^":pleroma" and c.key == ^"Oban") +      |> select([c], struct(c, [:value, :id])) +      |> Repo.one() + +    if config_entry do +      %{value: value} = config_entry + +      value = +        case Keyword.fetch(value, :verbose) do +          {:ok, log} -> Keyword.put_new(value, :log, log) +          _ -> value +        end +        |> Keyword.drop([:verbose, :prune]) + +      Ecto.Changeset.change(config_entry, %{value: value}) +      |> Repo.update() +    end +  end +end diff --git a/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs b/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs new file mode 100644 index 000000000..570acba84 --- /dev/null +++ b/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs @@ -0,0 +1,36 @@ +defmodule Pleroma.Repo.Migrations.AutolinkerToLinkify do +  use Ecto.Migration +  alias Pleroma.ConfigDB + +  @autolinker_path %{group: :auto_linker, key: :opts} +  @linkify_path %{group: :pleroma, key: Pleroma.Formatter} + +  @compat_opts [:class, :rel, :new_window, :truncate, :strip_prefix, :extra] + +  def change do +    with {:ok, {old, new}} <- maybe_get_params() do +      move_config(old, new) +    end +  end + +  defp move_config(%{} = old, %{} = new) do +    {:ok, _} = ConfigDB.update_or_create(new) +    {:ok, _} = ConfigDB.delete(old) +    :ok +  end + +  defp maybe_get_params() do +    with %ConfigDB{value: opts} <- ConfigDB.get_by_params(@autolinker_path), +         opts <- transform_opts(opts), +         %{} = linkify_params <- Map.put(@linkify_path, :value, opts) do +      {:ok, {@autolinker_path, linkify_params}} +    end +  end + +  def transform_opts(opts) when is_list(opts) do +    opts +    |> Enum.into(%{}) +    |> Map.take(@compat_opts) +    |> Map.to_list() +  end +end diff --git a/priv/repo/migrations/20200722185515_fix_malformed_formatter_config.exs b/priv/repo/migrations/20200722185515_fix_malformed_formatter_config.exs new file mode 100644 index 000000000..77b760825 --- /dev/null +++ b/priv/repo/migrations/20200722185515_fix_malformed_formatter_config.exs @@ -0,0 +1,26 @@ +defmodule Pleroma.Repo.Migrations.FixMalformedFormatterConfig do +  use Ecto.Migration +  alias Pleroma.ConfigDB + +  @config_path %{group: :pleroma, key: Pleroma.Formatter} + +  def change do +    with %ConfigDB{value: %{} = opts} <- ConfigDB.get_by_params(@config_path), +         fixed_opts <- Map.to_list(opts) do +      fix_config(fixed_opts) +    else +      _ -> :skipped +    end +  end + +  defp fix_config(fixed_opts) when is_list(fixed_opts) do +    {:ok, _} = +      ConfigDB.update_or_create(%{ +        group: :pleroma, +        key: Pleroma.Formatter, +        value: fixed_opts +      }) + +    :ok +  end +end | 
