Ecto v1.1.0 Ecto.Migrator

This module provides the migration API.

Example

defmodule MyApp.MigrationExample do
  use Ecto.Migration

  def up do
    execute "CREATE TABLE users(id serial PRIMARY_KEY, username text)"
  end

  def down do
    execute "DROP TABLE users"
  end
end

Ecto.Migrator.up(Repo, 20080906120000, MyApp.MigrationExample)

Summary

Functions

Runs a down migration on the given repository

Gets all migrated versions

Apply migrations in a directory to a repository with given strategy

Runs an up migration on the given repository

Functions

down(repo, version, module, opts \\ [])

Runs a down migration on the given repository.

Options

  • :log - the level to use for logging. Defaults to :info. Can be any of Logger.level/0 values or false.
migrated_versions(repo, opts \\ [])

Specs

migrated_versions(Ecto.Repo.t, Keyword.t) :: [integer]

Gets all migrated versions.

This function ensures the migration table exists if no table has been defined yet.

Options

  • :log - the level to use for logging. Defaults to :info. Can be any of Logger.level/0 values or false.
  • :prefix - the prefix to run the migrations on
run(repo, directory, direction, opts)

Specs

run(Ecto.Repo.t, binary, atom, Keyword.t) :: [integer]

Apply migrations in a directory to a repository with given strategy.

A strategy must be given as an option.

Options

  • :all - runs all available if true
  • :step - runs the specific number of migrations
  • :to - runs all until the supplied version is reached
  • :log - the level to use for logging. Defaults to :info. Can be any of Logger.level/0 values or false.
up(repo, version, module, opts \\ [])

Specs

up(Ecto.Repo.t, integer, Module.t, Keyword.t) ::
  :ok |
  :already_up |
  no_return

Runs an up migration on the given repository.

Options

  • :log - the level to use for logging. Defaults to :info. Can be any of Logger.level/0 values or false.
  • :prefix - the prefix to run the migrations on