# `Ecto.Migration.Index`
[🔗](https://github.com/elixir-ecto/ecto_sql/blob/v3.14.0/lib/ecto/migration.ex#L431)

Used internally by adapters.

To define an index in a migration, see `Ecto.Migration.index/3`.

# `column`

```elixir
@type column() :: atom() | String.t() | {index_dir(), atom() | String.t()}
```

# `index_dir`

```elixir
@type index_dir() ::
  :asc
  | :asc_nulls_first
  | :asc_nulls_last
  | :desc
  | :desc_nulls_first
  | :desc_nulls_last
```

# `t`

```elixir
@type t() :: %Ecto.Migration.Index{
  columns: [column()],
  comment: String.t() | nil,
  concurrently: boolean(),
  include: [atom() | String.t()],
  name: String.t() | atom(),
  nulls_distinct: boolean() | nil,
  only: boolean(),
  options: String.t(),
  prefix: String.t() | nil,
  table: String.t(),
  unique: boolean(),
  using: atom() | String.t(),
  where: atom() | String.t()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
