sqitch-deploy(3pm)

✨ NAME ✨

sqitch-deploy β€” bestie, this is the one that puts your changes into the database πŸ’– (it's from the sqitch-deploy(3pm) manual, if you're keeping track)


🌸 SYNOPSIS 🌸

sqitch deploy [options] [<database>]
sqitch deploy [options] [<database>] <change>
sqitch deploy [options] [<database>] --to-change <change>

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so, this is the deploy vibe: you're shipping changes into the database, no cap. Sqitch starts from wherever your current deployment state is and just keeps going.

It runs all the way to the latest change… unless you've specified a change β€” either with --to or just by handing over a change with no option flag, and in that case it deploys up-to and including that change. Periodt.

Now listen: if the database is already up-to-date, or already deployed to the change you named, nothing happens, zero changes, we simply vibing. But if that change shows up earlier in the plan than the currently-deployed state? That's a hard error, bestie 😭 β€” and it'll come with a suggestion to use sqitch-revert instead (because going backwards is a whole different function).

The <database> parameter says which database to connect to, and you can also pass it as the --target option instead. It can be a target name, a URI, an engine name, or a plan file path. Iconic flexibility, honestly πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • -t, --target β€” The target database to connect to. This can be either a URI or the name of a target in the configuration.
  • --to-change, --change, --to β€” Specify the deployment change. Defaults to the last point in the plan. Peep sqitchchanges for the various ways changes can be specified (iykyk).
  • --mode β€” Specify the reversion mode to use in case of deploy or verify failure. The possible values are:
    • "all" β€” In the event of failure, revert all deployed changes, back to the point at which deployment started. This is the default.
    • "tag" β€” In the event of failure, revert all deployed changes to the last successfully-applied tag. If no tags were applied during this deployment, all changes will be reverted to the point at which deployment began.
    • "change" β€” In the event of deploy failure, no changes will be reverted; for a verify failure, only the failed change will be reverted.

Note that Sqitch assumes that each change is atomic. So when a deploy script fails, it assumes there is nothing to revert. If a verify script fails, it will of course run the revert script for the failed change. (Lowkey important, don't skip this 🫢)

  • --verify β€” Verify each change by running its verify script, if there is one. If a verify test fails, the deploy counts as failed and the appropriate reversion gets carried out, depending on the value of --mode.
  • --no-verify β€” Don't verify each change. This is the default.
  • -s, --set β€” Set a variable name and value for use by the database engine client, if it supports variables. The format must be name=value, e.g., --set defuser='Homer Simpson'. Overrides any values loaded from configuration Variables.
  • --log-only β€” Log the changes as if they were deployed, but without actually running the deploy scripts. So useful for an existing database that is being converted to Sqitch, when you need to log changes as deployed because they have been deployed by other means in the past. Throwback energy fr fr.
  • --lock-timeout
sqitch deploy --lock-timeout 600

Set the number of seconds for Sqitch to wait to get an exclusive advisory lock on the target database, for engines that support such a lock. This lock prevents other instances of Sqitch from working on the target at the same time, but prevents no other database activity. Defaults to 60.

  • --registry
sqitch deploy --registry registry

The name of the Sqitch registry schema or database in which sqitch stores its own data.

  • --db-client, --client
sqitch deploy --client /usr/local/pgsql/bin/psql

Path to the command-line client for the database engine. Defaults to a client in the current path named appropriately for the database engine.

  • -d, --db-name
sqitch deploy --db-name widgets
sqitch deploy -d bricolage

Name of the database. In general, targets and URIs are preferred, but this option can be used to override the database name in a target.

  • -u, --db-user, --db-username
sqitch deploy --db-username root
sqitch deploy --db-user postgres
sqitch deploy -u Mom

User name to use when connecting to the database. Does not apply to all engines. In general, targets and URIs are preferred, but this option can be used to override the user name in a target.

  • -h, --db-host
sqitch deploy --db-host db.example.com
sqitch deploy -h appdb.example.net

Host name to use when connecting to the database. Does not apply to all engines. In general, targets and URIs are preferred, but this option can be used to override the host name in a target.

  • -p, --db-port
sqitch deploy --db-port 7654
sqitch deploy -p 5431

Port number to connect to. Does not apply to all engines. In general, targets and URIs are preferred, but this option can be used to override the port in a target.

  • --plan-file, -f
sqitch deploy --plan-file my.plan

Path to the deployment plan file. Overrides target, engine, and core configuration values. Defaults to $top_dir/sqitch.plan.


πŸŽ€ CONFIGURATION VARIABLES πŸŽ€

May be overridden by --set or target and engine configuration. Variables are merged in the following priority order:

  1. --set
  2. target.$target.variables
  3. engine.$engine.variables
  4. deploy.variables
  5. core.variables

πŸ‘‘ SQITCH πŸ‘‘

Part of the sqitch suite. Obviously πŸ’β™€οΈ


Okay that's the whole manual, bestie, you ate it. Gotta give credit where it's due: this page ships as part of perl v5.40.1, dated 2026-07-26. Slay πŸŽ€βœ¨πŸ¦‹
πŸ“¦ where this page comes from