diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index a75d85c47..b44fa13ed 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -10,6 +10,7 @@ defmodule Pleroma.Object do alias Pleroma.Activity alias Pleroma.Config + alias Pleroma.Delivery alias Pleroma.Hashtag alias Pleroma.Object alias Pleroma.Object.Fetcher @@ -30,6 +31,7 @@ defmodule Pleroma.Object do field(:data, :map) many_to_many(:hashtags, Hashtag, join_through: "hashtags_objects", on_replace: :delete) + has_many(:deliveries, Delivery, on_delete: :delete_all) timestamps() end diff --git a/priv/repo/migrations/20221128224527_delete_deliveries_on_object_delete.exs b/priv/repo/migrations/20221128224527_delete_deliveries_on_object_delete.exs new file mode 100644 index 000000000..290bc3340 --- /dev/null +++ b/priv/repo/migrations/20221128224527_delete_deliveries_on_object_delete.exs @@ -0,0 +1,16 @@ +defmodule Pleroma.Repo.Migrations.DeleteDeliveriesOnObjectDelete do + use Ecto.Migration + def up do + drop constraint(:deliveries, "deliveries_object_id_fkey") + alter table(:deliveries) do + modify :object_id, references(:objects, type: :id, on_delete: :delete_all), null: false + end + end + + def down do + drop constraint(:deliveries, "deliveries_object_id_fkey") + alter table(:deliveries) do + modify :object_id, references(:objects, type: :id), null: false + end + end +end diff --git a/priv/repo/migrations/20221129105331_add_notification_activity_id_index.exs b/priv/repo/migrations/20221129105331_add_notification_activity_id_index.exs new file mode 100644 index 000000000..b1eb71f72 --- /dev/null +++ b/priv/repo/migrations/20221129105331_add_notification_activity_id_index.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.AddNotificationActivityIdIndex do + use Ecto.Migration + + def change do + create(index(:notifications, [:activity_id])) + end +end diff --git a/priv/repo/migrations/20221129110627_add_bookmarks_activity_id_index.exs b/priv/repo/migrations/20221129110627_add_bookmarks_activity_id_index.exs new file mode 100644 index 000000000..f7b7911f8 --- /dev/null +++ b/priv/repo/migrations/20221129110627_add_bookmarks_activity_id_index.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.AddBookmarksActivityIdIndex do + use Ecto.Migration + + def change do + create(index(:bookmarks, [:activity_id])) + end +end diff --git a/priv/repo/migrations/20221129110727_add_report_notes_activity_id_index.exs b/priv/repo/migrations/20221129110727_add_report_notes_activity_id_index.exs new file mode 100644 index 000000000..dfe74c191 --- /dev/null +++ b/priv/repo/migrations/20221129110727_add_report_notes_activity_id_index.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.AddReportNotesActivityIdIndex do + use Ecto.Migration + + def change do + create(index(:report_notes, [:activity_id])) + end +end diff --git a/priv/repo/migrations/20221129112022_add_cascade_to_report_notes_on_activity_delete.exs b/priv/repo/migrations/20221129112022_add_cascade_to_report_notes_on_activity_delete.exs new file mode 100644 index 000000000..485003a41 --- /dev/null +++ b/priv/repo/migrations/20221129112022_add_cascade_to_report_notes_on_activity_delete.exs @@ -0,0 +1,17 @@ +defmodule Pleroma.Repo.Migrations.AddCascadeToReportNotesOnActivityDelete do + use Ecto.Migration + + def up do + drop constraint(:report_notes, "report_notes_activity_id_fkey") + alter table(:report_notes) do + modify :activity_id, references(:activities, type: :uuid, on_delete: :delete_all) + end + end + + def down do + drop constraint(:report_notes, "report_notes_activity_id_fkey") + alter table(:report_notes) do + modify :activity_id, references(:activities, type: :uuid) + end + end +end