Skip to the content
Documentation

exp:expmigrationmigrate

No ratings yet

Available since Exponential 6.0.15 (in development, not in a release yet).

Summary

Run the pending migrations: a dry run unless --apply; captions before and after, restore on failure, commit, tag and push

Usage

./console exp:expmigrationmigrate [options]
php bin/php/expmigrationmigrate.php [options]
./console exp:migration:migrate [options]

Aliases

exp:migration:migrate

Help

The output of ./console help exp:expmigrationmigrate (the script run with --help), without the standard options:

Usage: bin/php/expmigrationmigrate.php [OPTION]...
Run the pending migrations
Without --apply a dry run: every pending migration with what it would change, nothing written.
With --apply, under the installation lock (shared with exp:upgrade) and as [RunSettings] RunAsUser:
the code trees are checked for changes that are not committed, a caption is taken, the migrations
run in order (each in a transaction where the database has one), the run stops at the first failure
and restores the caption, a caption is taken after a run that passed, and the status file and run log
are committed, tagged and pushed in the migrations repository. A migration whose file changed after
it was applied stops the run unless --force --reason=<text> accepts it.

./console exp:migration:migrate
./console exp:migration:migrate --apply
./console exp:migration:migrate --only=20261031120000_add_news_class --apply
./console exp:migration:migrate --path=extension/expnews/migrations --environment=staging --apply --no-push
./console exp:migration:migrate --apply --max-migrations=20 --max-time=600 --throttle=0.5 --nice=10


Options:
  --apply                 Make the changes (the default is a dry run that lists them and changes nothing)
  --dry-run               The default, accepted for scripts that pass it: list what would change, change nothing
  --only=VALUE...         Only these migrations (migration ids, a comma list or repeated)
  --path=VALUE...         Migration files or folders, relative to the root or absolute (a comma list or repeated): migrate and dry-run take only the migrations in them, check checks them instead of the migration directories
  --environment=VALUE     The environment (default the installation's: [AdminEnvironment] Level, or EXP_ENV with Level=auto; check: every environment); only the migrations for it count
  --format=VALUE          text (default) or json (the machine output exp-migration/1)
  --login=VALUE           Run as this user (default: [RunSettings] RunAsUser of migration.ini)
  --no-caption            No caption before and after the run: a failure cannot be restored automatically
  --no-restore            After a failure, leave the installation as the failure left it instead of restoring the caption taken before the run
  --include-uncommitted   Run although settings/, extension/ or design/ have changes that are not committed, and keep them in the caption
  --no-commit             Do not commit the status file and run log to the migrations repository (no tag and no push either)
  --no-push               Commit and tag, but do not push
  --no-tag                Commit and push, but do not tag the run
  --force                 With --reason: accept migrations whose file changed after they were applied (they are not run again)
  --reason=VALUE          Why a changed migration is accepted (needed with --force; kept in the record and the audit log)
  --run-id=VALUE          The id of the run to start (default a new one: <date>-<time>-<6 hex digits>); the administration names it before it starts the run
  --progress=VALUE        Append the progress of the run to this file, one JSON object per line (what the administration shows while the run goes on)
  --max-migrations=VALUE  Apply at most this many migrations; the rest stay pending for the next run (default [RunSettings] MaxMigrations, empty: all)
  --max-time=VALUE        Start no further migration after this many seconds; the rest stay pending for the next run (default [RunSettings] MaxTime)
  --throttle=VALUE        Pause this many seconds between two migrations and between the batches of a long migration (default [RunSettings] Throttle)
  --nice=VALUE            Run at this lower priority, 1 to 19 as nice(1) (default [RunSettings] Nice)

Options

Option Value Description
--apply - Make the changes (the default is a dry run that lists them and changes nothing)
--dry-run - The default, accepted for scripts that pass it: list what would change, change nothing
--only required Only these migrations (migration ids, a comma list or repeated)
--path required Migration files or folders, relative to the root or absolute (a comma list or repeated): migrate and dry-run take only the migrations in them, check checks them instead of the migration directories
--environment required The environment (default the installation's: [AdminEnvironment] Level, or EXP_ENV with Level=auto; check: every environment); only the migrations for it count
--format required text (default) or json (the machine output exp-migration/1)
--login required Run as this user (default: [RunSettings] RunAsUser of migration.ini)
--no-caption - No caption before and after the run: a failure cannot be restored automatically
--no-restore - After a failure, leave the installation as the failure left it instead of restoring the caption taken before the run
--include-uncommitted - Run although settings/, extension/ or design/ have changes that are not committed, and keep them in the caption
--no-commit - Do not commit the status file and run log to the migrations repository (no tag and no push either)
--no-push - Commit and tag, but do not push
--no-tag - Commit and push, but do not tag the run
--force - With --reason: accept migrations whose file changed after they were applied (they are not run again)
--reason required Why a changed migration is accepted (needed with --force; kept in the record and the audit log)
--run-id required The id of the run to start (default a new one: <date>-<time>-<6 hex digits>); the administration names it before it starts the run
--progress required Append the progress of the run to this file, one JSON object per line (what the administration shows while the run goes on)
--max-migrations required Apply at most this many migrations; the rest stay pending for the next run (default [RunSettings] MaxMigrations, empty: all)
--max-time required Start no further migration after this many seconds; the rest stay pending for the next run (default [RunSettings] MaxTime)
--throttle required Pause this many seconds between two migrations and between the batches of a long migration (default [RunSettings] Throttle)
--nice required Run at this lower priority, 1 to 19 as nice(1) (default [RunSettings] Nice)

Standard options

Every script also takes the standard options of the script framework: --help, --quiet, --siteaccess, --debug, --colors, --no-colors, --logfiles, --no-logfiles, --verbose and --allow-root-user.

Source

bin/php/expmigrationmigrate.php, kernel/private/classes/commands/expmigrationmigrate.php

See also

Generated example: exp:expmigrationmigrate

Added to the reference for Exponential 6.0.15.

Contributors

Comments

Add a comment

Comments are read by a moderator before they appear.