sqitch-init - Create a new Sqitch project
sqitch init <project> sqitch init <project> --uri <uri>
This command creates an new Sqitch project -- basically a sqitch.conf file, a sqitch.plan file, and deploy, revert, and verify subdirectories.
Running sqitch init in an existing project is safe. It will not overwrite things that are already there.
--uri
sqitch init widgets --uri https://github.com/me/wigets
Optional URI to associate with the project. If present, the URI will be written to the project plan and used for added uniqueness in hashed object IDs, as well as to prevent the deployment of another project with the same name but different URI.
--engine
sqitch init widgets --engine pg
Specifies the default database engine to use in the project. Supported engines include:
pg - pg - PostgreSQL, Postgres-XC, and YugabyteDB
pg
sqlite - SQLite
sqlite
oracle - Oracle
oracle
mysql - MySQL and MariaDB
mysql
firebird - Firebird
firebird
vertica - Vertica
vertica
exasol - Exasol
exasol
snowflake - Snowflake
snowflake
cockroach - CockroachDB
cockroach
--top-dir
sqitch init widgets --top-dir sql
Specifies the top directory to use for the project. Typically contains the deployment plan file and the change script directories.
--plan-file
-f
sqitch init widgets --plan-file my.plan
Specifies the path to the deployment plan file. Defaults to $top_dir/sqitch.plan.
$top_dir/sqitch.plan
--extension
sqitch init widgets --extension ddl
Specifies the file name extension to use for change script file names. Defaults to sql.
sql
--dir
sqitch init widgets --dir deploy=dep --dir revert=rev --dir verify=tst
Sets the path to a script directory. May be specified multiple times. Supported keys are:
deploy
revert
verify
reworked
reworked_deploy
reworked_revert
reworked_verify
--target
sqitch init widgets --target db:pg:widgets
Specifies the name or URI of the default target database. If specified as a name, the default URI for the target will be db:$engine:.
db:$engine:
--registry
sqitch init widgets --registry meta
Specifies the name of the database object where Sqitch's state and history data is stored. Typically a schema name (as in PostgreSQL and Oracle) or a database name (as in SQLite and MySQL). Defaults to sqitch.
sqitch
--client
sqitch init widgets --client /usr/local/pgsql/bin/psql
Specifies the path to the command-line client for the database engine. Defaults to a client in the current path named appropriately for the specified engine.
The most important thing sqitch init does is create the project plan file, sqitch.conf. The options determine what gets written to the file:
sqitch init
Sets the core.engine configuration variable.
core.engine
Sets the core.top_dir configuration variable.
core.top_dir
Sets the core.plan_file configuration variable.
core.plan_file
Sets the core.extension configuration variable.
core.extension
Sets the following configuration variables:
deploy sets core.deploy_dir
core.deploy_dir
revert sets core.revert_dir
core.revert_dir
verify sets core.verify_dir
core.verify_dir
reworked sets core.reworked_dir
core.reworked_dir
reworked_deploy sets core.reworked_deploy_dir
core.reworked_deploy_dir
reworked_deploy sets core.reworked_revert_dir
core.reworked_revert_dir
reworked_deploy sets core.reworked_verify_dir
core.reworked_verify_dir
Sets the engine.$engine.target configuration variable if --engine is also passed and, if it's a target name, target.$target.uri
engine.$engine.target
target.$target.uri
Sets the engine.$engine.registry configuration variable if --engine is also passed.
engine.$engine.registry
Sets the engine.$engine.client configuration variable if --engine is also passed.
engine.$engine.client
-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'. Variables are set in core.variables.
name=value
--set defuser='Homer Simpson'
core.variables
As a general rule, you likely won't need any of these options except for --engine, since many commands need to know what engine to use, and specifying it on the command-line forever after would be annoying.
These variables will only be written if their corresponding options are specified. Otherwise, core options get written as comments with user or system configuration settings, or, failing any values from those locations, from their default values. If no defaults are specified, they will still be written, commented out, with a bar = and no value. This allows one to know what sorts of things are available to edit.
=
Start a new Sqitch project named "quack" using the SQLite engine, setting the top directory for the project to sqlite:
sqitch init --engine sqlite --top-dir sqlite quack
Start a new Sqitch project named "bey" using the PostgreSQL engine, setting the top directory to postgres, script extension to ddl, reworked directory to reworked and a version-specific client:
ddl
sqitch init --engine pg \ --top-dir postgres \ --client /opt/pgsql-9.1/bin/psql \ --extension ddl --dir reworked=reworked \ bey
Describes how Sqitch hierarchical engine and target configuration works.
Command to manage database engine configuration.
Command to manage target database configuration.
Command to manage all Sqitch configuration.
Part of the sqitch suite.
To install App::Sqitch, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::Sqitch
CPAN shell
perl -MCPAN -e shell install App::Sqitch
For more information on module installation, please visit the detailed CPAN module installation guide.