diff options
Diffstat (limited to 'priv/repo/migrations')
| -rw-r--r-- | priv/repo/migrations/20200328124805_change_following_relationships_state_to_integer.exs | 29 | ||||
| -rw-r--r-- | priv/repo/migrations/20200328130139_add_following_relationships_following_id_index.exs | 11 | 
2 files changed, 40 insertions, 0 deletions
| diff --git a/priv/repo/migrations/20200328124805_change_following_relationships_state_to_integer.exs b/priv/repo/migrations/20200328124805_change_following_relationships_state_to_integer.exs new file mode 100644 index 000000000..2b0820f3f --- /dev/null +++ b/priv/repo/migrations/20200328124805_change_following_relationships_state_to_integer.exs @@ -0,0 +1,29 @@ +defmodule Pleroma.Repo.Migrations.ChangeFollowingRelationshipsStateToInteger do +  use Ecto.Migration + +  @alter_following_relationship_state "ALTER TABLE following_relationships ALTER COLUMN state" + +  def up do +    execute(""" +    #{@alter_following_relationship_state} TYPE integer USING +    CASE +      WHEN state = 'pending' THEN 1 +      WHEN state = 'accept' THEN 2 +      WHEN state = 'reject' THEN 3 +      ELSE 0 +    END; +    """) +  end + +  def down do +    execute(""" +    #{@alter_following_relationship_state} TYPE varchar(255) USING +    CASE +      WHEN state = 1 THEN 'pending' +      WHEN state = 2 THEN 'accept' +      WHEN state = 3 THEN 'reject' +      ELSE '' +    END; +    """) +  end +end diff --git a/priv/repo/migrations/20200328130139_add_following_relationships_following_id_index.exs b/priv/repo/migrations/20200328130139_add_following_relationships_following_id_index.exs new file mode 100644 index 000000000..884832f84 --- /dev/null +++ b/priv/repo/migrations/20200328130139_add_following_relationships_following_id_index.exs @@ -0,0 +1,11 @@ +defmodule Pleroma.Repo.Migrations.AddFollowingRelationshipsFollowingIdIndex do +  use Ecto.Migration + +  # [:follower_index] index is useless because of [:follower_id, :following_id] index +  # [:following_id] index makes sense because of user's followers-targeted queries +  def change do +    drop_if_exists(index(:following_relationships, [:follower_id])) + +    create_if_not_exists(index(:following_relationships, [:following_id])) +  end +end | 
