From cc5686bbd6f8a5fbf345de2f54a9e07ec7ff2b5c Mon Sep 17 00:00:00 2001 From: Ilja Date: Sun, 20 Feb 2022 15:44:40 +0100 Subject: Migration for exiftool filter Rename to Exiftool.StripLocation --- ..._filter_exiftool_to_exiftool_strip_location.exs | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs (limited to 'priv/repo/migrations') diff --git a/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs b/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs new file mode 100644 index 000000000..7afb7479a --- /dev/null +++ b/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs @@ -0,0 +1,34 @@ +defmodule Pleroma.Repo.Migrations.UploadFilterExiftoolToExiftoolStripLocation do + use Ecto.Migration + + alias Pleroma.ConfigDB + + def up, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}) + |> update_filtername( + Pleroma.Upload.Filter.Exiftool, + Pleroma.Upload.Filter.Exiftool.StripLocation + ) + + def down, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}) + |> update_filtername( + Pleroma.Upload.Filter.Exiftool.StripLocation, + Pleroma.Upload.Filter.Exiftool + ) + + defp update_filtername(%{value: value}, from_filtername, to_filtername) do + new_filters = + value[:filters] + |> Enum.map(fn + ^from_filtername -> to_filtername + filter -> filter + end) + + new_value = value |> Keyword.update(:filters, [], fn _ -> new_filters end) + + ConfigDB.update_or_create(%{group: :pleroma, key: Pleroma.Upload, value: new_value}) + end +end -- cgit v1.2.3 From 75ea766824a5d7714fbea5d24e59444c7adfc274 Mon Sep 17 00:00:00 2001 From: Ilja Date: Mon, 21 Feb 2022 09:38:38 +0100 Subject: Migration failed when no value for Pleroma.Upload was set --- ...pload_filter_exiftool_to_exiftool_strip_location.exs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'priv/repo/migrations') diff --git a/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs b/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs index 7afb7479a..0878b9699 100644 --- a/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs +++ b/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs @@ -20,15 +20,18 @@ defmodule Pleroma.Repo.Migrations.UploadFilterExiftoolToExiftoolStripLocation do ) defp update_filtername(%{value: value}, from_filtername, to_filtername) do - new_filters = - value[:filters] - |> Enum.map(fn - ^from_filtername -> to_filtername - filter -> filter + new_value = + value + |> Keyword.update(:filters, [], fn filters -> + filters + |> Enum.map(fn + ^from_filtername -> to_filtername + filter -> filter + end) end) - new_value = value |> Keyword.update(:filters, [], fn _ -> new_filters end) - ConfigDB.update_or_create(%{group: :pleroma, key: Pleroma.Upload, value: new_value}) end + + defp update_filtername(_, _, _), do: nil end -- cgit v1.2.3