First
[anni] / priv / repo / migrations / 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