Skip to main content
The console boots the same application as a web request, so commands see the same configuration, services and plugins. Entity changes are flushed when the command finishes.
Without a database configured, only the three app:locale:* commands are registered. Everything else needs a connection.

Application commands

app:import:seeds

Imports the starter templates and categories shipped with the release, from data/seeds. Also available as app:import:presets. See Starter content.

app:locale:extract

Scans sources and updates .po catalogs.

app:locale:translate

Fills in missing translations using an AI model. Model and API credentials are read from options and the environment.

app:locale:build

Rebuilds the browser translation catalogs under the web root.

app:update

Applies an update archive: backs up what must survive, extracts the release, runs migrations, reinstalls plugins, restores translations. Most installations update through the admin panel, which runs the same process. See How to update.

Doctrine commands

Migrations

ORM

DBAL

orm:schema-tool:update --force changes the schema without recording a migration, which leaves the migration table out of step. Use migrations on anything but a scratch database.

Running commands in production

  • Run as the web server user, so cache and log files stay writable.
  • Redirect output when running from cron; the console writes to standard output.
  • Commands exit with a non-zero status on failure, so deployment scripts can check.

Plugins and commands

Plugins can’t register console commands: the command map is static. Expose the action as an admin endpoint, or run it from the cron event instead. See Data and persistence.