sqitch-init - Create a new Sqitch project
sqitch [options] init project sqitch [options] init --uri uri project
This command creates an new Sqitch project -- basically a sqitch.conf file, a sqitch.plan file, and a sql directory with deploy, revert, and test subdirectories.
Running sqitch init in an existing repository is safe. It will not overwrite things that are already there.
--uri
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.
The most important thing sqitch init does is create the project plan file, sqitch.conf. While the init command has no options of its own, it relies on several of the options to sqitch to determine what to write to this file:
sqitch init
init
sqitch
--plan-file
Sets the core.plan_file configuration variable.
core.plan_file
--top-dir
Determines the top-level directory to use when writing the plan and thecore.deploy_dir, core.revert_dir, and core.test_dir variables -- unless they are overridden by their more-specific options, detailed below.
core.deploy_dir
core.revert_dir
core.test_dir
--deploy-dir
Sets the core.deploy_dir configuration variable.
--revert-dir
Sets the core.revert_dir configuration variable.
--test-dir
Sets the core.test_dir configuration variable.
--extension
Sets the core.extension configuration variable.
core.extension
--engine
Sets the core.engine configuration variable.
core.engine
As a general rule, you likely won't need any of them except for --engine, since your project can have only one engine at a time, 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, they 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.
=
Relatedly, the engine-specific sqitch options will also be used to write variables, as follows:
--db-client
Used to set core.pg.client, core.sqlite.client, or core.mysql.client.
core.pg.client
core.sqlite.client
core.mysql.client
--db-name
Used to set core.pg.db_name, core.sqlite.db_name, or core.mysql.db_name.
core.pg.db_name
core.sqlite.db_name
core.mysql.db_name
--db-user
Used to set core.pg.username, or core.mysql.username.
core.pg.username
core.mysql.username
--db-host
Used to set core.pg.host, or core.mysql.host.
core.pg.host
core.mysql.host
--db-port
Used to set core.pg.port, or core.mysql.port.
core.pg.port
core.mysql.port
Again, if these are no specified, the engine-specific options will still be written out, but as comments with values either from user or system configuration, or default values.
Start a new Sqitch project using the SQLite engine, setting the default database file to /var/db/widgets.db
sqitch --engine --db-name /var/db/widgets.db sqlite init
Start a new Sqitch project using the PostgreSQL engine, with the default database name "widgets", the default user name "postgres", and a version-specific client:
sqitch --engine pg \ --db-name widgets \ --db-user postgres \ --db-client /opt/pgsql-9.1/bin/psql init
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.