diff options
author | feld <feld@feld.me> | 2021-06-07 20:11:45 +0000 |
---|---|---|
committer | feld <feld@feld.me> | 2021-06-07 20:11:45 +0000 |
commit | b553bfd745e76117efafd81c8306abd29e28e4a0 (patch) | |
tree | 49a0266aa03707104d370faafd694671306e6b48 | |
parent | 676c3c96dce8a620c86bca03cc4997b0593d54fb (diff) | |
parent | 9a357d63f0d8381492a0ffe0e507f233fc35fbf8 (diff) | |
download | pleroma-b553bfd745e76117efafd81c8306abd29e28e4a0.tar.gz |
Merge branch 'fix/prune-hashtags' into 'develop'
get prune_objects to work again
See merge request pleroma/pleroma!3397
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | lib/mix/tasks/pleroma/database.ex | 9 | ||||
-rw-r--r-- | priv/repo/migrations/20210420204354_delete_hashtags_objects_cascade.exs | 19 |
3 files changed, 29 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 24c029bf3..daa8f2ff6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Don't crash so hard when email settings are invalid. - Checking activated Upload Filters for required commands. +- Mix task `pleroma.database prune_objects` ### Removed - **Breaking**: Remove deprecated `/api/qvitter/statuses/notifications/read` (replaced by `/api/v1/pleroma/notifications/read`) diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index e7f4b67a4..57f73d12b 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -96,6 +96,15 @@ defmodule Mix.Tasks.Pleroma.Database do ) |> Repo.delete_all(timeout: :infinity) + prune_hashtags_query = """ + DELETE FROM hashtags AS ht + WHERE NOT EXISTS ( + SELECT 1 FROM hashtags_objects hto + WHERE ht.id = hto.hashtag_id) + """ + + Repo.query(prune_hashtags_query) + if Keyword.get(options, :vacuum) do Maintenance.vacuum("full") end diff --git a/priv/repo/migrations/20210420204354_delete_hashtags_objects_cascade.exs b/priv/repo/migrations/20210420204354_delete_hashtags_objects_cascade.exs new file mode 100644 index 000000000..f4ebf53d6 --- /dev/null +++ b/priv/repo/migrations/20210420204354_delete_hashtags_objects_cascade.exs @@ -0,0 +1,19 @@ +defmodule Pleroma.Repo.Migrations.DeleteHashtagsObjectsCascade do + use Ecto.Migration + + def up do + execute("ALTER TABLE hashtags_objects DROP CONSTRAINT hashtags_objects_object_id_fkey") + + alter table(:hashtags_objects) do + modify(:object_id, references(:objects, on_delete: :delete_all)) + end + end + + def down do + execute("ALTER TABLE hashtags_objects DROP CONSTRAINT hashtags_objects_object_id_fkey") + + alter table(:hashtags_objects) do + modify(:object_id, references(:objects, on_delete: :nothing)) + end + end +end |