mix ecto.migrate (Ecto SQL v3.7.0) View Source
Runs the pending migrations for the given repository.
Migrations are expected at "priv/YOUR_REPO/migrations" directory
of the current application, where "YOUR_REPO" is the last segment
in your repository name. For example, the repository
will use "priv/repo/migrations". The repository
will use "priv/my_repo/migrations".
You can configure a repository to use another directory by specifying
:priv key under the repository configuration. The "migrations"
part will be automatically appended to it. For instance, to use
config :my_app, MyApp.Repo, priv: "priv/custom_repo"
This task runs all pending migrations by default. To migrate up to a
specific version number, supply
--to version_number. To migrate a
specific number of times, use
The repositories to migrate are the ones specified under the
:ecto_repos option in the current app configuration. However,
-r option is given, it replaces the
Since Ecto tasks can only be executed once, if you need to migrate
multiple repositories, set
:ecto_repos accordingly or pass the
flag multiple times.
If a repository has not yet been started, one will be started outside your application supervision tree and shutdown afterwards.
$ mix ecto.migrate $ mix ecto.migrate -r Custom.Repo $ mix ecto.migrate -n 3 $ mix ecto.migrate --step 3 $ mix ecto.migrate --to 20080906120000
--repo- the repo to migrate
--all- run all pending migrations
-n- run n number of pending migrations
--to- run all migrations up to and including version
--quiet- do not log migration commands
--prefix- the prefix to run migrations on
--pool-size- the pool size if the repository is started only for the task (defaults to 2)
--log-sql- log the raw sql migrations are running
--strict-version-order- abort when applying a migration with old timestamp
--no-compile- does not compile applications before migrating
--no-deps-check- does not check dependencies before migrating
--migrations-path- the path to load the migrations from, defaults to
"priv/repo/migrations". This option may be given multiple times in which case the migrations are loaded from all the given directories and sorted as if they were in the same one.
Note, if you have migrations paths e.g.
b/, and run
mix ecto.migrate --migrations-path a/, the latest migrations from
a/will be run (even if
b/contains the overall latest migrations.)