Peter Stuifzand

They wouldn't install if not for packages

In Use of DBI in Sqitch, Wheeler writes about Sqitch, an application for SQL change management.

Sqitch uses the native database client applications (psql, sqlite3, mysql, etc.). […] The IPC is a huge PITA. Furthermore, getting things properly quoted is also pretty annoying

I would expect this when you use SQL command-line tools in other tools. Of course, this is Perl, which is better at this kind of thing than other languages.

Still in a Perl application, I wouldn’t use SQL command-line tools for anything, except maybe a poke at the database or in a tiny (shell-like) script that just needs one value. DBI is perfect for executing queries on the database.

His main reason for using the database command-line tools is that these are always installed on the servers for the people that want to use this tool. That’s probably true.

If I used the DBI instead, then Sqitch would not work at all unless you installed the appropriate DBI driver for your database of choice. This is no big deal for Perl people, of course, but I don’t want this to be a Perl people tool. I want it to be dead simple for anyone to use for any database.

Making this a tool for everybody and not just Perl users is great and important. It shouldn’t matter to his audience what language this application is written in. So using the CPAN to install modules, shouldn’t be something these people should have to learn to install this software.

I argue that these same people also wouldn’t download a tar file and run some strange build instructions. From the README:

perl Build.PL
./Build test
./Build install

They wouldn’t even download the file. Package management is a wonderful thing. And the apt-get install sqitch command should just work.

© 2023 Peter Stuifzand