Artur-Sulej / excellent_migrations

An Elixir tool for checking safety of database migrations.
MIT License
242 stars 25 forks source link

Non-concurrent index detection doesn't work with pipelines #33

Open renanpvaz opened 1 year ago

renanpvaz commented 1 year ago

The following code will not be flagged when checked against excellent_migrations. This is because the AST parser expects a different structure: https://github.com/Artur-Sulej/excellent_migrations/blob/master/lib/ast_parser.ex#L40

defmodule ExcellentMigrations.CreateIndexPipeline do
  def up do
    :dumplings |> index([:dough]) |> create()
    :dumplings |> index([:dough]) |> create_if_not_exists()
  end

  def down do
    :dumplings |> index([:dough]) |> drop()
    :dumplings |> index([:dough]) |> drop_if_exists()
  end
end

Is there a reason why we can't just look at all calls of index and unique_index whether inside create or not?