W3cubDocs

/Phoenix

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

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

Runs a down migration on the given repository

migrated_versions(repo, opts \\ [])

Gets all migrated versions

migrations(repo, directory)

Returns an array of tuples as the migration status of the given repo, without actually running any migrations

run(repo, migration_source, direction, opts)

Apply migrations to a repository with a given strategy

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

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.
  • :prefix - the prefix to run the migrations on

migrated_versions(repo, opts \\ [])

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

migrations(repo, directory)

Returns an array of tuples as the migration status of the given repo, without actually running any migrations.

run(repo, migration_source, direction, opts)

run(Ecto.Repo.t, binary | [{integer, module}], atom, Keyword.t) :: [integer]

Apply migrations to a repository with a given strategy.

The second argument identifies where the migrations are sourced from. A file path may be passed, in which case the migrations will be loaded from this during the migration process. The other option is to pass a list of tuples that identify the version number and migration modules to be run, for example:

Ecto.Migrator.run(Repo, [{0, MyApp.Migration1}, {1, MyApp.Migration2}, ...], :up, opts)

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.
  • :prefix - the prefix to run the migrations on

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

up(Ecto.Repo.t, integer, module, 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

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/ecto/Ecto.Migrator.html