Page MenuHomePhorge

No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None
diff --git a/priv/repo/migrations/20261027000000_upload_filter_exiftool_to_exif.exs b/priv/repo/migrations/20261027000000_upload_filter_exiftool_to_exif.exs
index 62392f957..4e737e859 100644
--- a/priv/repo/migrations/20261027000000_upload_filter_exiftool_to_exif.exs
+++ b/priv/repo/migrations/20261027000000_upload_filter_exiftool_to_exif.exs
@@ -22,20 +22,20 @@ defmodule Pleroma.Repo.Migrations.UploadFilterExiftoolToExif do
def down, do: rename_filters(@down)
+ # Only touch configs that list filters: adding an empty list would hide the
+ # filters from the config file.
defp rename_filters(renames) do
- case ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}) do
- %{value: value} ->
- new_value =
- Keyword.update(value, :filters, [], fn filters ->
- filters
- |> Enum.map(&Map.get(renames, &1, &1))
- |> Enum.uniq()
- end)
-
- ConfigDB.update_or_create(%{group: :pleroma, key: Pleroma.Upload, value: new_value})
-
- _ ->
- nil
+ with %{value: value} <- ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}),
+ filters when is_list(filters) <- value[:filters],
+ new_filters when new_filters != filters <-
+ filters |> Enum.map(&Map.get(renames, &1, &1)) |> Enum.uniq() do
+ ConfigDB.update_or_create(%{
+ group: :pleroma,
+ key: Pleroma.Upload,
+ value: Keyword.put(value, :filters, new_filters)
+ })
+ else
+ _ -> nil
end
end
end
diff --git a/test/pleroma/repo/migrations/upload_filter_exiftool_to_exif_test.exs b/test/pleroma/repo/migrations/upload_filter_exiftool_to_exif_test.exs
index 9d39c6ea6..0fdf26961 100644
--- a/test/pleroma/repo/migrations/upload_filter_exiftool_to_exif_test.exs
+++ b/test/pleroma/repo/migrations/upload_filter_exiftool_to_exif_test.exs
@@ -61,4 +61,13 @@ defmodule Pleroma.Repo.Migrations.UploadFilterExiftoolToExifTest do
assert migration.up() == nil
assert ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}) == nil
end
+
+ test "up/0 does not add filters to a database config without them", %{migration: migration} do
+ insert(:config, group: :pleroma, key: Pleroma.Upload, value: [uploader: Pleroma.Uploaders.S3])
+
+ migration.up()
+
+ value = ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}).value
+ assert value == [uploader: Pleroma.Uploaders.S3]
+ end
end

File Metadata

Mime Type
text/x-diff
Expires
Sun, Nov 1, 11:49 PM (2 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1803430
Default Alt Text
(2 KB)

Event Timeline