Changes for v1.5.0
- Fix improperly nested Pod headers that were incrementing two levels relative to their parent headers, which messed with the HTML output on sqitch.org.
- Banned "[" and "]" in names (changes, tags, projects) because they muck with dependency parsing of the plan file. Thanks to Žiga Leber for the bug report (#829).
- Updated the IPC methods that interact with engine clients to raise exception objects rather than strings, for more consistent error handling throughout.
- Removed duplicate DBI error handling code from engines and tests.
- Fixed an order of operation issue that prevented Sqitch from detecting Yugabyte before attempting to create an advisory lock, which resulted in an error for more recent Yugabyte releases. Thanks to Stefano Ricciardi for the report (#841).
- Removed a wayward mention of the long-deprecated
SQITCH_URI
environment variable from the Oracle tutorial. Thanks to Austin Hanson for the report (#845). - Improved unexpected error output by including any previous exception.
- Changed the "unknown engine" error to a runtime error, rather than development time, with a localized error message. The error loading the engine package and the stack trace remain available by using triple verbosity (
-vvv
). Thanks to Martin Fischer for the report (#838). - Changed the default error code from Oracle
sqlplus
fromSQL.SQLCODE
to4
, because otherwise the exit code is returnedmodulo 256
, meaning it can end up0
for success for an SQL error code likeORA-01792
. Selected4
as the replacement to match the behavior of Exasol and becauseFAILURE
maps to exit code1
, which has in the past been more akin to a warning. Thanks to @vectro for the report (#831). - Added checks for the existence of deploy and revert files when deploying and reverting. Previously Sqitch deferred such errors to the CLIs, but they're never called when using
--log-only
. Thanks to @vectro and Erik Wienhold for the suggestion (#828). - Fixed a bug where the MySQL engine failed to properly handle target URIs with no database name. Thanks to Felix Zedén Yverås for the report (#821).
- Updated the MySQL engine to omit the
checkit()
function when using binary logging and Sqitch lacks super user permissions. Thanks to Scott Edwards for the report and to Janosch Peters for the solution (#824). - Taught the Snowflake engine to detect when the Sqitch user lacks permission to create a schema and to skip the creation of the registry schema. Useful for cases when the registry schema was created in advance. Thanks to Peter Wimsey for the suggestion (#826).
- Switched the MySQL engine from DBD::mysql to DBD::MariaDB for better compatibility with older versions of the MySQL client library and for its Unicode improvements. Thanks to Mark Tyrrell for the report and @tiberiusferreira and Perl Monks
1nickt
andInfiniteSilence
for the feedback (#825).