sqitch...onment(3pm)

πŸ’– NAME πŸ’–

sqitch-environment β€” every environment variable Sqitch recognizes, bestie. It lives in the User Contributed Perl Documentation, section 3pm, and it's literally just the receipts for all the env vars that can boss Sqitch around ✨


🌸 DESCRIPTION 🌸

Ok so Sqitch supports a whole lil' village of environment variables that affect how it does its thing 🫢 This doc lists all of them, with quick descriptions of what each one is for and pointers to the docs you actually wanna read.


πŸŽ€ Sqitch Environment

These are Sqitch's own variables, no cap πŸ’…

  • SQITCH_CONFIG β€” Path to the project configuration file. This overrides the default, which is ./sqitch.conf. Peep sqitch-config for the details.
  • SQITCH_USER_CONFIG β€” Path to the user's configuration file. Overrides the default, which is ./.sqitch/sqitch.conf. Again, sqitch-config has the tea.
  • SQITCH_SYSTEM_CONFIG β€” Path to the system's configuration file. Overrides the default, which is a file named sqitch.conf living in the directory identified by sqitch --etc. See sqitch-config for details.
  • SQITCH_TARGET β€” The name or URI of the database target to connect to. It overrides values stored in the configuration β€” but not command-line options or arguments, so CLI still wins, periodt.
  • SQITCH_USERNAME β€” Username to use when connecting to a database, for those database engines that support authentication. Overrides values stored in a target URI or the configuration. sqitch-authentication has the full story.
  • SQITCH_PASSWORD β€” Password to use when connecting to a database, for those database engines that support authentication. Overrides values stored in a target URI or the configuration. See sqitch-authentication for details.
  • SQITCH_FULLNAME β€” Full name of the current user. Used to identify the user adding a change to a plan file or deploying a change. Supersedes the <user.name> sqitch-config variable.
  • SQITCH_EMAIL β€” Email address of the current user. Used to identify the user adding a change to a plan file or deploying a change. Supersedes the user.email sqitch-config variable.
  • SQITCH_ORIG_SYSUSER β€” Username from the original system. Intended for use by scripts that run Sqitch from another host, where the originating host username should be passed to the execution host β€” like this Docker script: https://github.com/sqitchers/docker-sqitch/blob/main/docker-sqitch.sh.
  • SQITCH_ORIG_FULLNAME β€” Full name of the original system user. Intended for use by scripts that run Sqitch from another host, where the originating host user's identity should be passed to the execution host, like that same Docker script: https://github.com/sqitchers/docker-sqitch/blob/main/docker-sqitch.sh. ⚠️ This value will only be used when neither the $SQITCH_FULLNAME nor the user.name sqitch-config variable is set.
  • SQITCH_ORIG_EMAIL β€” Email address of the original user. Intended for use by scripts that run Sqitch on a separate host, where the originating host user's identity should be passed to the execution host, like that Docker script again: https://github.com/sqitchers/docker-sqitch/blob/main/docker-sqitch.sh. ⚠️ This value will only be used when neither the $SQITCH_EMAIL nor the user.email sqitch-config variable is set.
  • SQITCH_EDITOR β€” The editor Sqitch will launch when you need to edit some text (a change note, for example). The fallback chain is very main character, so listen up: if it's unset, the core.editor configuration variable is used. If that's not set either, $VISUAL or $EDITOR get consulted (in that order). And finally, if none of these are set, Sqitch invokes notepad.exe on Windows and vi everywhere else. 🫑
  • SQITCH_PAGER β€” The pager program Sqitch uses when a command (like sqitch log) produces multi-page output. Chain time again: if unset, the core.pager configuration variable is used. If that's also not set, the PAGER environment variable is used. And if none of these are set, Sqitch attempts to find and use one of the commonly used pager programs, like less and more. πŸ¦‹

🌈 Engine Environments

Beyond Sqitch's own env vars, some of the database engines support environment variables of their own. Heads up: this is not comprehensive for every variable any database engine supports β€” it just documents the ones Sqitch's implementation supports per engine. πŸ’…

🐘 PostgreSQL, YugabyteDB, CockroachDB

All the usual PostgreSQL environment variables (https://www.postgresql.org/docs/current/static/libpq-envars.html) should be implicitly used. However, the following variables are explicitly recognized by Sqitch:

  • PGUSER β€” The username to use to connect to the server. Superseded by $SQITCH_USERNAME and the target URI username.
  • PGPASSWORD β€” The password to use to connect to the server. Superseded by $SQITCH_PASSWORD and the target URI password.
  • PGHOST β€” The PostgreSQL server host to connect to. Superseded by the target URI host name.
  • PGPORT β€” The PostgreSQL server port to connect to. Superseded by the target URI port.
  • PGDATABASE β€” The name of the database to connect to. Superseded by the target URI database name.

πŸͺ¨ SQLite

SQLite provides no environment variable support. That's it, that's the section πŸ’€

🐬 MySQL

Sqitch recognizes and takes advantage of the following MySQL environment variables (https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html):

  • MYSQL_PWD β€” The password to use to connect to the server. Superseded by $SQITCH_PASSWORD and the target URI password.
  • MYSQL_HOST β€” The MySQL server host to connect to. Superseded by the target URI host name.
  • MYSQL_TCP_PORT β€” The MySQL server port to connect to. Superseded by the target URI port.

πŸ”΄ Oracle

Sqitch's Oracle engine supports a few environment variables:

  • ORACLE_HOME β€” Required to point to the Oracle home directory, and contain both the SQL*Plus client and the shared libraries with which the Perl Oracle driver was compiled.
  • TNS_ADMIN β€” The directory in which the Oracle networking interface will find its configuration files, notably tnsnames.ora. Defaults to $ORACLE_HOME/network/admin if not set.
  • TWO_TASK β€” The name of the Oracle database to connect to. Superseded by the target URI.
  • LOCAL β€” The name of the Oracle database to connect to. Windows only. Superseded by the target URI.
  • ORACLE_SID β€” The System Identifier (SID) representing the Oracle database to connect to. Superseded by the target URI, TWO_TASK and LOCAL on Windows.

In addition, the Oracle engine in Sqitch explicitly overrides the NLS_LANG and SQLPATH environment variables. The former is set to AMERICAN_AMERICA.AL32UTF8 to ensure that all database connections use the UTF-8 encoding ✨ The latter is set to an empty string, to prevent SQL*Plus executing SQL scripts unexpectedly.

πŸ”₯ Firebird

The Sqitch Firebird engine supports the following environment variables:

  • ISC_USER β€” The username to use to connect to Firebird. Superseded by $SQITCH_USERNAME and the target URI username.
  • ISC_PASSWORD β€” The password to use to connect to Firebird. Superseded by $SQITCH_PASSWORD and the target URI password.

πŸ“Š Vertica

Sqitch provides explicit support for the following Vertica environment variables (https://www.vertica.com/docs/8.1.x/HTML/index.htm#Authoring/ConnectingToVertica/vsql/vsqlEnvironmentVariables.htm):

  • VSQL_USER β€” The username to use to connect to the server. Superseded by $SQITCH_USERNAME and the target URI username.
  • VSQL_PASSWORD β€” The password to use to connect to the server. Superseded by $SQITCH_PASSWORD and the target URI password.
  • VSQL_HOST β€” The Vertica server host to connect to. Superseded by the target URI host name.
  • VSQL_PORT β€” The Vertica server port to connect to. Superseded by the target URI port.
  • VSQL_DATABASE β€” The name of the database to connect to. Superseded by the target URI database name.

🧊 Exasol

The Sqitch Exasol engine supports no special environment variables. It does, however, override THE SQLPATH environment variable, to prevent EXAplus executing SQL scripts unexpectedly. (Yes, THE. Slay.) 😌

❄️ Snowflake

Sqitch provides explicit support for the following Snowflake environment variables (https://docs.snowflake.com/en/user-guide/snowsql-start.html#connection-syntax):

  • SNOWSQL_ACCOUNT β€” The name assigned to the snowflake account. Superseded by the target URI host name.
  • SNOWSQL_USER β€” The username to use to connect to the server. Superseded by $SQITCH_USERNAME and the target URI username.
  • SNOWSQL_PWD β€” The password to use to connect to the server. Superseded by $SQITCH_PASSWORD and the target URI password.
  • SNOWSQL_PRIVATE_KEY_PASSPHRASE β€” The passphrase for the private key file when using key pair authentication. See sqitch-authentication for details.
  • SNOWSQL_ROLE β€” The role to use when connecting to the server. Superseded by the target URI database role query parameter.
  • SNOWSQL_DATABASE β€” The name of the database to connect to. Superseded by the target URI database name.
  • SNOWSQL_WAREHOUSE β€” The warehouse to use. Superseded by the target URI database warehouse query parameter.
  • SNOWSQL_HOST β€” The Snowflake server host to connect to. Superseded by the target URI host name. Deprecated by Snowflake.
  • SNOWSQL_REGION β€” The Snowflake region. Superseded by the target URI host name. Deprecated by Snowflake.

🏠 ClickHouse

The Sqitch ClickHouse engine supports the following environment variables:

  • CLICKHOUSE_USER β€” The username to use to connect to ClickHouse. Superseded by $SQITCH_USERNAME and the target URI username.
  • CLICKHOUSE_PASSWORD β€” The password to use to connect to ClickHouse. Superseded by $SQITCH_PASSWORD and the target URI password.
  • CLICKHOUSE_HOST β€” The ClickHouse server host to connect to. Superseded by the target URI host name.

πŸ‘€ SEE ALSO πŸ‘€

  • sqitch-configuration
  • sqitch-config
  • sqitch-authentication

🫢 Sqitch

Part of the sqitch suite. iykyk πŸ’œ


ok that's the whole page bestie, go forth and export responsibly 🌟 oh and for the record: this shipped as perl v5.40.1, dated 2026-07-26 β€” iconic behavior honestly πŸ’…πŸŽ€

πŸ“¦ where this page comes from