The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.9991 - 2015-04-03

  • Improvements
    • Reduced minimum required MySQL engine from 5.6.4 to 5.1.0. Versions prior to 5.6.4 lose the following features:
      • Versions earlier than 5.6.4 is fractional second precision on registry `DATETIME` columns. Since the ordering of those timestamps is so important to the functioning of Sqitch, it will sleep in 100 ms increments between logging changes to the registry until the time has ticked over to the next second. Naturally, reverts and deploys will be a little slower on versions of MySQL before 5.6.4, but accurate.
      • Versions earlier than 5.5.0 lose the `checkit()` functions, which would otherwise be used to emulate CHECK constraints in the registry, as well as in user-created verify scripts, as recommended in the MySQL tutorial, `sqitchtutorial-mysql`.
    • Added a script to update the `DATETIME` columns in a MySQL Sqitch registry that was upgraded to MySQL 5.6.4 or higher. It will be installed as `tools/upgrade-registry-to-mysql-5.6.4.sql` in the directory returned by `sqitch --etc`.
    • Added a script to add the `checkit()` function and registry triggers to emulate CHECK constraints to a MySQL Sqitch registry that was upgraded to MySQL 5.5.0 or higher. It will be installed as `tools/upgrade-registry-to-mysql-5.5.0.sql` in the directory returned by `sqitch --etc`.
    • The `init` command now throws an error when the plan file already exists and is invalid or defined for a different project. Thanks to Gabriel Potkány for the suggestion (Issue #214).
    • All commands that take target arguments can now specify them as engine names or plan file paths as well as target names and URIs.
    • Added the `--all` option and the `$command.all` configuration variable to the `add`, `rework`, `tag`, and `bundle` commands. This option tells the commands to do their thing for all plans known from the configuration, not just the default plan.
    • Pass engine, target, or plan file names to the `add`, `rework`, `tag`, and `bundle` commands` commands to specify specify one or more targets, engines, and plans to act on.
    • Added the `--change` option to the `add`, `rework`, and `tag` commands to distinguish the change to be added, reworked, or tagged from plan-specifying arguments, if necessary.
    • Added the `--tag` option to the `tag` command to distinguish the tag to be added from plan-specifying arguments, if necessary.
    • Changed the short variant of the `--conflicts` option to the `add` and `rework` commands from `-c` to `-x`. The `-c` option is now used as the short variant for `--change` (and `--conflicts` has almost certainly never been used, anyway).
    • Added the `engine` and `project` variables to the execution of script templates by the `add` command. The default templates now use it to make their first lines one of:
      • -- Deploy [% project %]:[% change %] to [% engine]
      • -- Revert [% project %]:[% change %] from [% engine]
      • -- Verify [% project %]:[% change %] on [% engine]
  • Bug Fixes
    • DateTime::TimeZone::Local::Win32 is now required on Windows.
    • The MySQL engine no longer passes `--skip-pager` on Windows, since it is not supported there. Thanks to Gabriel Potkány for the report (Issue #213).
    • Fixed "no such table: changes" error when upgrading the SQLite registry.
    • Fixed upgrade failure on PostgreSQL 8.4. Thanks to Phillip Smith for the report!
    • Fixed an error when the `status` command `show_changes` and `show_tags` configuration variables were set. Thanks to Adrian Klaver for the report (Issue #219).
    • Fixed `log` and `plan` usage statements to properly spell `--abbrev`. Thanks to Adrian Klaver for the report (Issue #220).
    • Fixed the formatting of change notes so that a space precedes the `#` character whether the note was added by the `--note` option or via an editor.
    • Fixed a bug when parsing plan files with DOS/Windows line endings. Thanks to Timothy Procter for the report (Issue #212).
    • Looking up a change and tag in the database (via the `--onto` option to `rebase` or the `--to` option to `revert`, among others) would sometimes return the incorrect change if the change has been reworked two or more times. Thanks to BryLo for the report!
  • Documentation
    • Updated docs to be consistent in referring to the location of the system configuration and template location as `$(prefix)/etc/sqitch`. Also added notes pointing to the `--etc-dir` to find out exactly what that resolves to. Suggested by Joseph Anthony Pasquale Holsten (Issue #167).
  • Deprecations
    • Reverted deprecation of the database connection options. Target URIs are still generally preferred, but sometimes you want to use a target but just change the user name or database name. Retaining the options is the easiest way to do this. Plus, a fair number of people have scripts that use these options, and it seems petty to break them. Sorry for the double-take here! The list of un-deprecated options is:
      • `--db-client`
      • `--db-host`
      • `--db-port`
      • `--db-username`
      • `--db-password`
      • `--db-name`

Documentation

Sqitch add usage statement
Add a database change to plans
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
Environment variables recognized by Sqitch
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
Guide to using database passwords with Sqitch
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 upgrade usage statement
Upgrade the registry to the current version
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 Sqitch plans
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 Sqitch plans
Add, modify, or list Sqitch target databases
Upgrade the Sqitch registry
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