exp:expmigrationmigrate
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
- Graham Brookins Updated
Comments
Add a comment