summaryrefslogtreecommitdiff
path: root/priv
diff options
context:
space:
mode:
authorHélène <pleroma-dev@helene.moe>2022-08-07 20:41:24 +0200
committerHélène <pleroma-dev@helene.moe>2022-08-10 02:29:38 +0200
commitc559c240d1a56f05fc70f69ae6b8c0809026fa2e (patch)
tree331554198590eedd3349ccecf5b40807c620772c /priv
parentdef0f5dc2e76b7c4ac22b393abf7f5de5e197659 (diff)
Migrations: delete context objects
These objects represent from 30 to 70% of the rows on the objects table, based on numbers from a few live instances (single-user, small, large.) As those pseudo-objects prevent creating objects with those actual IDs, deleting them is a better solution. This could have happened if an object used another object's ID as its context.
Diffstat (limited to 'priv')
-rw-r--r--priv/repo/migrations/20220807125023_data_migration_delete_context_objects.exs15
1 files changed, 15 insertions, 0 deletions
diff --git a/priv/repo/migrations/20220807125023_data_migration_delete_context_objects.exs b/priv/repo/migrations/20220807125023_data_migration_delete_context_objects.exs
new file mode 100644
index 000000000..debb474b2
--- /dev/null
+++ b/priv/repo/migrations/20220807125023_data_migration_delete_context_objects.exs
@@ -0,0 +1,15 @@
+defmodule Pleroma.Repo.Migrations.DataMigrationDeleteContextObjects do
+ use Ecto.Migration
+
+ require Logger
+
+ @doc "This migration removes objects created exclusively for contexts, containing only an `id` field."
+
+ def change do
+ Logger.warn(
+ "This migration can take a very long time to execute, depending on your database size. Please be patient, Pleroma-tan is doing her best!\n"
+ )
+
+ execute("DELETE FROM objects WHERE (data->>'type') IS NULL;")
+ end
+end