Add rollbacks for associated_object_id
[akkoma] / priv / repo / optional_migrations / pleroma_develop_rollbacks / 20220711192750_switch_to_associated_object_id_index.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Repo.Migrations.SwitchToAssociatedObjectIdIndex do
6 use Ecto.Migration
7 @disable_ddl_transaction true
8 @disable_migration_lock true
9
10 def up do
11 drop_if_exists(
12 index(:activities, ["(coalesce(data->'object'->>'id', data->>'object'))"],
13 name: :activities_create_objects_index
14 )
15 )
16
17 create(
18 index(:activities, ["associated_object_id(data)"],
19 name: :activities_create_objects_index,
20 concurrently: true
21 )
22 )
23 end
24
25 def down do
26 drop_if_exists(
27 index(:activities, ["associated_object_id(data)"], name: :activities_create_objects_index)
28 )
29
30 create(
31 index(:activities, ["(coalesce(data->'object'->>'id', data->>'object'))"],
32 name: :activities_create_objects_index,
33 concurrently: true
34 )
35 )
36 end
37 end