The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.997 - 2014-11-04

  • New Features
    • Added support for new target properties. In addition to the existing `uri`, `client`, and `registry` properties, targets may also configure these properties via the new `--set` option to and `set-*` actions on the `target` command:
      • `top_dir`
      • `plan_file`
      • `extension`
      • `deploy_dir`
      • `revert_dir`
      • `verify_dir`
    • Added support for new engine configuration variables. In addition to the existing `target`, `client`, and `registry` variables, engine configuration may also include these variables:
      • `top_dir`
      • `plan_file`
      • `extension`
      • `deploy_dir`
      • `revert_dir`
      • `verify_dir`
    • Rationalized the hierarchical configuration of deployment targets. The properties of any given target will now be determined by examining values in the following order:
      • Command-line options
      • Target configuration
      • Engine configuration
      • Core configuration
      • Reasonable engine-specific defaults
    • Added the `engine` command to simplify engine configuration. This complements the newly-improved `target` command. Run `sqitch engine update-config` to update deprecated engine configurations and start using it.
    • Added the sqitch-configuration guide to provide an overview of core, engine, and target configuration. Includes some use-case examples and best suggested practices.
  • Improvements
    • Simplified the output of `sqitch help`, and added the more important options to it.
    • Added the `--guide` option to `sqitch help` to list Sqitch guides.
    • Renamed the `--db-client` option to `--client`. `--db-client` still works, but is deprecated.
    • Added the `--registry` core option for parity with `--client`, `--top-dir`, `--plan-file`, and the rest of the hierarchical configuration properties.
    • Updated the `init` documentation to better cover all the options processed.
    • Incremented the version plan file format version to v1.0.0. No changes; it has been stable for at least a year, so it's time.
  • Bug Fixes
    • At runtime, the Vertica engine now properly requires DBD::ODBC instead of DBD::Pg.
    • The Vertica engine now supports Vertica 6, as documented.
    • Fixed a warning from Type::Utils, thanks to a report from Géraud CONTINSOUZAS.
    • The `status` command once again notices if the specified database is uninitialized and says as much, rather than dying with an SQL error.
    • The `--etc-path` option works again.
  • Deprecations
    • Deprecated `core.$engine` configuration in favor of `engine.$engine`. A warning will be emitted if Sqitch sees the former. Run `sqitch engine update-config` to update your configurations. Existing `core.$engine` configurations will be left in place for compatibility with older versions of Sqitch, but the `sqitch engine` command will not modify them, so they can get out-of-sync. Run `sqitch config --remove-section core.$engine` to remove them.
    • Formally deprecated the database connection options in favor of target URIs. If any of these options is used, a warning will be issued. They will be dropped in v1.0:
      • `--db-host`
      • `--db-port`
      • `--db-username`
      • `--db-password`
      • `--db-name`
    • Formally deprecated the database connection configuration variables in favor of target URIs. If any of these variables is used, a warning will be issued. Run `sqitch engine update-config` to update your configurations. Existing `core.$engine` configurations will be left in place for compatibility with older versions of Sqitch, but the `sqitch engine` command will not modify them, so they can get out-of-sync. Run `sqitch config --remove-section core.$engine` to remove them. Sqitch will cease to support them in v1.0:
      • `core.$engine.host`
      • `core.$engine.port`
      • `core.$engine.username`
      • `core.$engine.password`
      • `core.$engine.db_name`
    • Deprecated the `--registry` and `--client` options of the `target` command. All target properties should now be set via the new `--set` option, such as `--set registry=reg`.
    • Formally deprecated the following options of the `add` command. They have been replaced with the `--with`, `--without`, and `--use` options since v0.991. Their use will emit a warning, and they will be removed in v1.0:
      • `--deploy-template`
      • `--revert-template`
      • `--verify-template`
      • `--deploy`
      • `--no-deploy`
      • `--revert`
      • `--no-revert`
      • `--verify`
      • `--no-verify`
    • Dropped support for the long-deprecated (and likely never used outside ancient tests long deleted) engine configuration variables `core.sqlite.sqitch_db` and `core.pg.sqitch_schema`. Both have been replaced with `engine.$engine.registry`, which applies to all engines.
    • Formally deprecated the `@FIRST` and `@LAST` symbolic tags. Their use will trigger a warning to use `@ROOT` and `@HEAD`, instead. They will be removed in v1.0.
  • Internals
    • Moved target and engine configuration from App::Sqitch and App::Sqitch::Engine to a new class, App::Sqitch::Target. This class is solely responsible for finding the appropriate values for attributes on every run. The target knows what plan and engine to use, based on those properties. App::Sqitch is now responsible solely for encapsulating command-line options, configuration, and utilities. Classes are now responsible for instantiating both an App::Sqitch and App::Sqitch::Target options as appropriate.
    • Updated all classes to create both Sqitch and Target objects as appropriate. This change touched almost every class.
    • Replaced attributes in App::Sqitch that were previously set from command-line options or configuration with a single attribute, `options`, which is a hash only of the command-line options. Classes are now responsible for finding the proper values in config or options. Mostly this requirement is encapsulated by the new App::Sqitch::Target class.
    • Updated the command classes to use either a "default target" derived from command-line options, engine configuration, and core configuration, or a target looked up by name in the configuration maintained by the `target` command.

Documentation

Sqitch add usage statement
Add a database change to the plan
Sqitch bundle usage statement
Bundle a Sqitch project for distribution
Sqitch checkout usage statement
Revert, checkout another VCS branch, and re-deploy changes
Sqitch config usage statement
Get and set local, user, or system Sqitch options
Hierarchical engine and target configuration
Sqitch deploy usage statement
Deploy changes to a database
Sqitch engine usage statement
Manage database engine configuration
Sqitch help usage statement
Display help for Sqitch and Sqitch commands
Sqitch init usage statement
Create a new Sqitch project
Sqitch log usage statement
Show Sqitch change logs
Sqitch plan usage statement
Show planned database changes
Sqitch rebase usage statement
Revert and redeploy database changes
Sqitch revert usage statement
Revert changes to a database
Sqitch rework usage statement
Rework a database change
Sqitch show usage statement
Show object information or change file contents
Sqitch status usage statement
Show the current deployment status of a database
Sqitch tag usage statement
Create or list tag objects
Sqitch target usage statement
Manage target database configuration
Sqitch verify usage statement
Verify deployed database changes
Sane database change management
Specifying changes for Sqitch
List of common sqitch commands
List of common Sqitch guides
A tutorial introduction to Sqitch change management on Firebird
A tutorial introduction to Sqitch change management on MySQL
A tutorial introduction to Sqitch change management on Oracle
A tutorial introduction to Sqitch change management on SQLite
A tutorial introduction to Sqitch change management on Vertica
A tutorial introduction to Sqitch change management on PostgreSQL
Sqitch usage statement

Modules

Sane database change management
Sqitch Command support
Add a new change to a Sqitch plan
Bundle Sqitch changes for distribution
Revert, change checkout a VCS branch, and redeploy
Get and set local, user, or system Sqitch options
Deploy Sqitch changes to a database
Add, modify, or list Sqitch database engines
Display help information about Sqitch
Initialize a Sqitch project
Show a database event log
List the changes in the plan
Revert and redeploy Sqitch changes
Revert Sqitch changes from a database
Rework a Sqitch change
Show Sqitch changes to a database
Display status information about Sqitch
Add or list tags in a Sqitch plan
Add, modify, or list Sqitch target databases
Verify deployed Sqitch changes
Sqitch configuration management
Sqitch DateTime object
Sqitch Deployment Engine
Sqitch Firebird Engine
Sqitch MySQL Engine
Sqitch Oracle Engine
Sqitch PostgreSQL Engine
Sqitch SQLite Engine
Sqitch Vertica Engine
Format events and changes for command output
Sqitch Deployment Plan
Sqitch deployment plan blank line
Sqitch deployment plan tag
Sqitch deployment plan change list
Sqitch dependency specification
Sqitch deployment plan line
Sqitch deployment plan line list
Sqitch deployment plan blank line
Sqitch deployment plan tag
An engine based on the DBI
A command that reverts and deploys
Sqitch deployment target
Definition of attribute data types
Sqitch Exception class