From d7af67012f64d09bb50259188473c1c94418b3a2 Mon Sep 17 00:00:00 2001 From: Tusooa Zhu Date: Tue, 8 Mar 2022 00:06:07 -0500 Subject: Implement first pass of announcement admin api CCBUG: https://git.pleroma.social/pleroma/pleroma/-/issues/2836 CCBUG: https://git.pleroma.social/pleroma/pleroma/-/issues/1470 --- .../20220308012601_create_announcements.exs | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 priv/repo/migrations/20220308012601_create_announcements.exs (limited to 'priv/repo') diff --git a/priv/repo/migrations/20220308012601_create_announcements.exs b/priv/repo/migrations/20220308012601_create_announcements.exs new file mode 100644 index 000000000..e7c3b10a3 --- /dev/null +++ b/priv/repo/migrations/20220308012601_create_announcements.exs @@ -0,0 +1,23 @@ +defmodule Pleroma.Repo.Migrations.CreateAnnouncements do + use Ecto.Migration + + def change do + create_if_not_exists table(:announcements, primary_key: false) do + add(:id, :uuid, primary_key: true) + add(:data, :map) + + timestamps() + end + + create_if_not_exists table(:announcement_read_relationships) do + add(:user_id, references(:users, type: :uuid, on_delete: :delete_all)) + add(:announcement_id, references(:announcements, type: :uuid, on_delete: :delete_all)) + + timestamps(updated_at: false) + end + + create_if_not_exists( + unique_index(:announcement_read_relationships, [:user_id, :announcement_id]) + ) + end +end -- cgit v1.2.3 From fcf3c9057ec1c49a0c9a400985c1dde4a5d7e9db Mon Sep 17 00:00:00 2001 From: Tusooa Zhu Date: Tue, 8 Mar 2022 18:21:20 -0500 Subject: Implement visibility filtering for announcements --- priv/repo/migrations/20220308012601_create_announcements.exs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'priv/repo') diff --git a/priv/repo/migrations/20220308012601_create_announcements.exs b/priv/repo/migrations/20220308012601_create_announcements.exs index e7c3b10a3..9f273fda9 100644 --- a/priv/repo/migrations/20220308012601_create_announcements.exs +++ b/priv/repo/migrations/20220308012601_create_announcements.exs @@ -5,6 +5,8 @@ defmodule Pleroma.Repo.Migrations.CreateAnnouncements do create_if_not_exists table(:announcements, primary_key: false) do add(:id, :uuid, primary_key: true) add(:data, :map) + add(:starts_at, :naive_datetime) + add(:ends_at, :naive_datetime) timestamps() end -- cgit v1.2.3 From ebcda5265b9c82be26eae65b5ab39629a525c3fa Mon Sep 17 00:00:00 2001 From: Tusooa Zhu Date: Tue, 8 Mar 2022 23:00:51 -0500 Subject: Format announcements into html --- priv/repo/migrations/20220308012601_create_announcements.exs | 1 + 1 file changed, 1 insertion(+) (limited to 'priv/repo') diff --git a/priv/repo/migrations/20220308012601_create_announcements.exs b/priv/repo/migrations/20220308012601_create_announcements.exs index 9f273fda9..01c9ce041 100644 --- a/priv/repo/migrations/20220308012601_create_announcements.exs +++ b/priv/repo/migrations/20220308012601_create_announcements.exs @@ -7,6 +7,7 @@ defmodule Pleroma.Repo.Migrations.CreateAnnouncements do add(:data, :map) add(:starts_at, :naive_datetime) add(:ends_at, :naive_datetime) + add(:rendered, :map) timestamps() end -- cgit v1.2.3 From aa51fd068bb8f02660ebb653d240b09eec502957 Mon Sep 17 00:00:00 2001 From: Pete Date: Fri, 6 May 2022 18:35:09 -0700 Subject: Add index hotspots squash --- .../migrations/20220506175506_add_index_hotspots.exs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 priv/repo/migrations/20220506175506_add_index_hotspots.exs (limited to 'priv/repo') diff --git a/priv/repo/migrations/20220506175506_add_index_hotspots.exs b/priv/repo/migrations/20220506175506_add_index_hotspots.exs new file mode 100644 index 000000000..e1f59bbac --- /dev/null +++ b/priv/repo/migrations/20220506175506_add_index_hotspots.exs @@ -0,0 +1,17 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddIndexHotspots do + use Ecto.Migration + + def change do + # Stop inserts into activities from doing a full-table scan of users: + create_if_not_exists(index(:users, [:ap_id, "COALESCE(follower_address, '')"])) + + # Change two indexes and a filter recheck into one index scan: + create_if_not_exists(index(:following_relationships, [:follower_id, :state])) + + create_if_not_exists(index(:notifications, [:user_id, :seen])) + end +end -- cgit v1.2.3 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') 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') 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