Name
sqitch-environment - Environment variables recognized by Sqitch
Description
Sqitch supports a number of environment variables that affect its functionality. This document lists them all, along with brief descriptions of their purposes and pointers to relevant documentation.
Sqitch Environment
SQITCH_CONFIG
-
Path to the project configuration file. Overrides the default, which is ./sqitch.conf. See sqitch-config for details.
SQITCH_USER_CONFIG
-
Path to the user's configuration file. Overrides the default, which is ./.sqitch/sqitch.conf. See sqitch-config for details.
SQITCH_SYSTEM_CONFIG
-
Path to the system's configuration file. Overrides the default, which is a file named
sqitch.conf
in the directory identified bysqitch --etc
. See sqitch-config for details. 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 file. See sqitch-authentication for details.
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 file. 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, such as this Docker script.
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, such as this Docker script. This value will be used only when neither the
$SQITCH_FULLNAME
nor theuser.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, such as this Docker script. This value will be used only when neither the
$SQITCH_EMAIL
nor theuser.email
sqitch-config variable is set. SQITCH_EDITOR
-
The editor that Sqitch will launch when the user needs to edit some text (a change note, for example). If unset, the
core.editor
configuration variable will be used. If it's not set,$VISUAL
or$EDITOR
will be consulted (in that order). Finally, if none of these are set, Sqitch will invokenotepad.exe
on Windows andvi
elsewhere. SQITCH_PAGER
-
The pager program that Sqitch will use when a command (like
sqitch log
) produces multi-page output. If unset, thecore.pager
configuration variable will be used. If this is also not set, thePAGER
environment variable will be used. Finally, if none of these are set, Sqitch will attempt to find and use one of the commonly used pager programs likeless
andmore
.
Engine Environments
In addition to Sqitch's environment variables, some of the database engines support environment variables of their own. These are not comprehensive for all variables supported by a database engine, but document those supported by Sqitch's implementation for each engine.
PostgreSQL
All the usual PostgreSQL environment variables 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.
MySQL
Sqitch recognizes and takes advantage of the following MySQL environment variables:
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
andLOCAL
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:
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 PostgreSQL server host to connect to. Superseded by the target URI host name.
VSQL_PORT
-
The PostgreSQL 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.
Snowflake
Sqitch provides explicit support for the following Snowflake environment variables:
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_HOST
-
The PostgreSQL server host to connect to. Superseded by the target URI host name.
SNOWSQL_PORT
-
The PostgreSQL server port to connect to. Superseded by the target URI port.
SNOWSQL_DATABASE
-
The name of the database to connect to. Superseded by the target URI database name.
SNOWSQL_REGION
-
The snowflake region. Superseded by the target URI host name.
SNOWSQL_WAREHOUSE
-
The warehouse to use. Superseded by the target URI database
warehouse
query parameter.
See Also
Sqitch
Part of the sqitch suite.