diff options
Diffstat (limited to 'priv/repo/optional_migrations')
| -rw-r--r-- | priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs | 31 | 
1 files changed, 24 insertions, 7 deletions
| diff --git a/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs b/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs index 757afa129..88476fb57 100644 --- a/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs +++ b/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs @@ -3,18 +3,28 @@ defmodule Pleroma.Repo.Migrations.AddFtsIndexToObjectsTwo do    def up do      execute("create extension if not exists rum") -    drop_if_exists index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts) + +    drop_if_exists( +      index(:objects, ["(to_tsvector('english', data->>'content'))"], +        using: :gin, +        name: :objects_fts +      ) +    ) +      alter table(:objects) do        add(:fts_content, :tsvector)      end      execute("CREATE FUNCTION objects_fts_update() RETURNS trigger AS $$      begin -    new.fts_content := to_tsvector('english', new.data->>'content'); +    new.fts_content := to_tsvector(new.data->>'content');      return new;      end      $$ LANGUAGE plpgsql") -    execute("create index if not exists objects_fts on objects using RUM (fts_content rum_tsvector_addon_ops, inserted_at) with (attach = 'inserted_at', to = 'fts_content');") + +    execute( +      "create index if not exists objects_fts on objects using RUM (fts_content rum_tsvector_addon_ops, inserted_at) with (attach = 'inserted_at', to = 'fts_content');" +    )      execute("CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE ON objects      FOR EACH ROW EXECUTE PROCEDURE objects_fts_update()") @@ -23,12 +33,19 @@ defmodule Pleroma.Repo.Migrations.AddFtsIndexToObjectsTwo do    end    def down do -    execute "drop index if exists objects_fts" -    execute "drop trigger if exists tsvectorupdate on objects" -    execute "drop function if exists objects_fts_update()" +    execute("drop index if exists objects_fts") +    execute("drop trigger if exists tsvectorupdate on objects") +    execute("drop function if exists objects_fts_update()") +      alter table(:objects) do        remove(:fts_content, :tsvector)      end -    create_if_not_exists index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts) + +    create_if_not_exists( +      index(:objects, ["(to_tsvector('english', data->>'content'))"], +        using: :gin, +        name: :objects_fts +      ) +    )    end  end | 
