######octothorp.es

#sqitch

  • Sqitch Update: The Plan

    https://justatheory.com/2012/05/sqitch-plan

    I gave my first presentation on Sqitch at PGCon last week. The slides are on Slideshare and the PGCon site. It came together at the last minute, naturally. I was not able to pay as close attention to PGCon sessions as I would have liked, as I was doing last minute hacking to get the deploy command working on PostgreSQL, and then writing the slides (which are based on the tutorial). I was pleased with the response, given that this is very much a project that is still under heavy development and available only as a very very early alpha. There was great discussion and feedback afterward, which I appreciate.

  • Sqitch: Where to Define Dependencies?

    https://justatheory.com/2012/05/sqitch-dependencies

  • Thinking about Changing Sqitch Change IDs

    https://justatheory.com/2012/11/changing-sqitch-ids

  • Data Deployment with Sqitch

    https://justatheory.com/2013/08/data-deployment-with-sqitch

  • Sqitch: Back to the VCS

    https://justatheory.com/2012/06/sqitch-vcs-again

  • The Ever Evolving Sqitch Plan

    https://justatheory.com/2012/05/evolving-sqitch-plan

  • Sqitch Symbolism

    https://justatheory.com/2012/09/sqitch-symbolism

  • Sqitch Status: A Step at a Time

    https://justatheory.com/2012/05/sqitch-steps

  • Sqitch Goes Vertical

    https://justatheory.com/2014/09/sqitch-goes-vertical

  • Sqitch Templating

    https://justatheory.com/2013/09/sqitch-templating

    Last week saw the v.980 release of Sqitch, a database change management system. The headline feature in this version is support for MySQL 5.6.4 or higher. Why 5.6.4 rather than 5.1 or even 5.5? Mainly because 5.6.4 finally added support for fractional seconds in DATETIME columns (details in the release notes). This feature is essential for Sqitch, because changes often execute within a second of each other, and the deploy time is included in the log table’s primary key.

  • Sqitch Status: Add User Info?

    https://justatheory.com/2012/07/sqitch-user-info

  • Sqitch: Depend On It!

    https://justatheory.com/2012/08/sqitch-depend-on-it

  • Templating Tests with Sqitch

    https://justatheory.com/2014/01/templating-tests-with-sqitch

  • Sqitch — VCS-powered SQL Change Management

    https://justatheory.com/2012/04/sqitch-draft

    Back in January, I wrote three posts outlining some ideas I had about a straight-forward, sane way of managing SQL change management. The idea revolved around specifying scripts to deploy and revert in a plan file, and generating that plan file from VCS history. I still feel pretty good about the ideas there, and work has agreed to let me write it and open-source it. Here is the first step making it happen. I call it “Sqitch.”

  • Sqitch Update

    https://justatheory.com/2012/04/sqitch-update

    A quick update on Sqitch. I started implementation about a couple of weeks ago. It’s coming a long a bit more slowly than I’d like, given that I need to give a presentation on it soon. But I did things a little differently than I usually do with project like this: I wrote documentation first. In addition to the basic docs I posted a couple weeks back, I’ve written a tutorial. I put quite a lot of time into it, studying the Git interface as I did so, to try to develop useful workflows. The nice thing about this it that it will not only serve as the foundation for my presentation (PHEW! Half the work done already!), but it also serves as a design specification.

  • Requiring Reworked Sqitch Changes

    https://justatheory.com/2013/07/sqitch-requiring-reworked-changes

    I recently discovered a mildly annoying bug in Sqitch, the Git-inspired database schema change management app I’ve been working on for the past year. One of its key features is the ability to “rework” changes. For example, if you have a change that defines a function change_password(), and discover sometime after release that it has a bug (maybe the hashing algorithm is too weak), you can “rework” it – essentially modify it in place – and save some headaches. Check out the “In Place Changes” section of the (PostgreSQL, SQLite, Oracle, or MySQL (coming soon) tutorials for detailed examples of how it works.

  • Sqitch v1.0.0

    https://justatheory.com/2019/06/sqitch-v1.0.0

    After seven years of development and production database deployments, I finally put in the effort to release v1.0.0.

  • Agile Database Development Tutorial

    https://justatheory.com/2013/06/agile-db-dev

  • Sqitch on Target

    https://justatheory.com/2014/01/sqitch-on-target

  • Sqitch: Now with SQLite Support

    https://justatheory.com/2013/04/sqitch-sqlite

  • Sqitch Update: Almost Usable

    https://justatheory.com/2012/07/sqitch-almost-usable

  • Sqitch Update: All Your Rebase Are...Never Mind

    https://justatheory.com/2012/12/sqitch-rebase

  • Sqitch 1.5.0

    https://justatheory.com/2025/01/sqitch-1.5.0

    Sqitch v1.5.0: out now in all the usual places!

  • Sqitch 1.6.0: Now with ClickHouse!

    https://justatheory.com/2025/10/sqitch-1.6.0

    Sqitch 1.6.0, out today, adds support for managing ClickHouse databases.

  • Sqitch v0.80: Now With More You

    https://justatheory.com/2012/08/sqitch-more-you

  • Flaked, Brewed, and Docked

    https://justatheory.com/2018/10/flaked-brewed-and-docked

    Sqitch v0.9998: Now with Snowflake support, an improved Homebrew tap, and the quickest way to get started: the new Docker image.

  • Sqitch: Rename Step Objects and the SQL Directory?

    https://justatheory.com/2012/06/sqitch-steps-to-change

    After all of the thinking and rethinking about how to manage a Sqitch plan, I am just about done with all the changes to make it all work. One of the changes I’ve made is that tags are no longer objects that stand on their own between change steps, but are simply names the refer to specific change steps. Not only is this much more like how a VCS thinks of tags (basically another name for a single commit), but it also greatly simplifies the code for iterating over a plan and updating metadata in the database.

  • Use of DBI in Sqitch

    https://justatheory.com/2012/05/dbi-in-sqitch

    Sqitch uses the native database client applications (psql, sqlite3, mysql, etc.). So for tracking metadata about the state of deployments, I have been trying to stick to using them. I’m first targeting PostgreSQL, and as a result need to open a connection to psql, start a transaction, and be able to read and write stuff to it as migrations go along. The IPC is a huge PITA. Furthermore, getting things properly quoted is also pretty annoying — and it will be worse for SQLite and MySQL, I expect (psql’s --set support is pretty slick).

  • Notes on Upcoming Sqitch Improvements

    https://justatheory.com/2013/07/upcoming-sqitch-improvements

  • Removing Sqitch Deprecations

    https://justatheory.com/2018/12/removing-sqitch-deprecations

    A list of deprecated Sqitch features and code paths I propose to remove ahead of the release of v1.0.

  • Sqitch: Trust, But Verify

    https://justatheory.com/2013/01/sqitch-trust-but-verify

  • Sqitch Homebrew Tap

    https://justatheory.com/2013/02/sqitch-homebrew-tap

    If Sqitch is to succeed, it needs to get into the hands of as many people as possible. That means making it easy to install for people who are not Perl hackers and don’t want to deal with CPAN. The Sqitch Homebrew Tap is my first public stab at that. It provides a series of “Formulas” for Homebrew users to easily download, build, and install Sqitch and all of its dependencies.

  • Sqitchers

    https://justatheory.com/2018/05/sqitchers

    The time has come for Sqitch to leave the nest and go out on its own.

  • Sqitch on Windows (and Linux, Solaris, and OS X)

    https://justatheory.com/2013/02/sqitch-on-windows

  • Should URI::mysql Switch to DBD::MariaDB?

    https://justatheory.com/2025/01/uri-mysql-mariadb

    Should Sqitch and URI::mysql use DBD::MariaDB instead of DBD::mysql? If so, what are the implications for Sqitch deployment and usage?