diff options
| author | feld <feld@feld.me> | 2021-01-20 22:48:48 +0000 | 
|---|---|---|
| committer | feld <feld@feld.me> | 2021-01-20 22:48:48 +0000 | 
| commit | 2926713fe5c36b8fc64bcce13ca16bc12eaff96c (patch) | |
| tree | 7c0acf2b0843fdd6d4ec380eeb98f62ee12ee7cc /priv/repo/migrations | |
| parent | 2905df841bb820c0016782483567beef68252f89 (diff) | |
| parent | 086100e3b7cad827c0f377fdcc4ae9d3b66327c7 (diff) | |
| download | pleroma-2926713fe5c36b8fc64bcce13ca16bc12eaff96c.tar.gz pleroma-2926713fe5c36b8fc64bcce13ca16bc12eaff96c.zip  | |
Merge branch 'deprecate-public_endpoint' into 'develop'
Deprecate Uploaders.S3, :public_endpoint
See merge request pleroma/pleroma!3251
Diffstat (limited to 'priv/repo/migrations')
| -rw-r--r-- | priv/repo/migrations/20210113225652_deprecate_public_endpoint.exs | 57 | 
1 files changed, 57 insertions, 0 deletions
diff --git a/priv/repo/migrations/20210113225652_deprecate_public_endpoint.exs b/priv/repo/migrations/20210113225652_deprecate_public_endpoint.exs new file mode 100644 index 000000000..6f470a459 --- /dev/null +++ b/priv/repo/migrations/20210113225652_deprecate_public_endpoint.exs @@ -0,0 +1,57 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.DeprecatePublicEndpoint do +  use Ecto.Migration + +  def up do +    with %Pleroma.ConfigDB{} = s3_config <- +           Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Uploaders.S3}), +         %Pleroma.ConfigDB{} = upload_config <- +           Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}) do +      public_endpoint = s3_config.value[:public_endpoint] + +      if !is_nil(public_endpoint) do +        upload_value = upload_config.value |> Keyword.merge(base_url: public_endpoint) + +        upload_config +        |> Ecto.Changeset.change(value: upload_value) +        |> Pleroma.Repo.update() + +        s3_value = s3_config.value |> Keyword.delete(:public_endpoint) + +        s3_config +        |> Ecto.Changeset.change(value: s3_value) +        |> Pleroma.Repo.update() +      end +    else +      _ -> :ok +    end +  end + +  def down do +    with %Pleroma.ConfigDB{} = upload_config <- +           Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}), +         %Pleroma.ConfigDB{} = s3_config <- +           Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Uploaders.S3}) do +      base_url = upload_config.value[:base_url] + +      if !is_nil(base_url) do +        s3_value = s3_config.value |> Keyword.merge(public_endpoint: base_url) + +        s3_config +        |> Ecto.Changeset.change(value: s3_value) +        |> Pleroma.Repo.update() + +        upload_value = upload_config.value |> Keyword.delete(:base_url) + +        upload_config +        |> Ecto.Changeset.change(value: upload_value) +        |> Pleroma.Repo.update() +      end +    else +      _ -> :ok +    end +  end +end  | 
