App::S...:mysql(3pm)

πŸ’– NAME πŸ’–

App::Sqitch::Engine::mysql β€” the Sqitch MySQL Engine, bestie. She's the one that lets Sqitch talk to your MySQL (and MariaDB) databases. This page is from the User Contributed Perl Documentation, section 3pm, and yeah the title got chopped to App::S...:mysql up top because man pages are dramatic like that. πŸ’…


✨ SYNOPSIS ✨

my $mysql = App::Sqitch::Engine->load( engine => 'mysql' );

That's it. That's the whole vibe check. Load the engine, go make your schema iconic. πŸ¦‹


🌸 DESCRIPTION 🌸

App::Sqitch::Engine::mysql is literally the MySQL storage engine for Sqitch β€” the little backend that holds all your deploy/verify/revert plans for MySQL databases.

Here's the tea on versions, no cap:

  • It supports MySQL 5.1.0 and higher (and it's best on 5.6.4 and higher).
  • It also supports MariaDB 5.3.0 and higher.

So if you're on something ancient, bestie, consider this your sign to upgrade. 🌈


πŸŽ€ INTERFACE πŸŽ€

πŸ’… Instance Methods

mysql

Returns a list containing the mysql client and options to be passed to it. It's used internally whenever Sqitch executes scripts, so you don't have to call it yourself β€” it just does its thing behind the scenes like the main character it is.

The cute part: query parameters in the URI that map to mysql client options get handed straight to the client. Here's the full mapping, fr fr:

  • mysql_compression=1 β†’ --compress
  • mysql_ssl=1 β†’ --ssl
  • mysql_connect_timeout β†’ --connect_timeout
  • mysql_init_command β†’ --init-command
  • mysql_socket β†’ --socket
  • mysql_ssl_client_key β†’ --ssl-key
  • mysql_ssl_client_cert β†’ --ssl-cert
  • mysql_ssl_ca_file β†’ --ssl-ca
  • mysql_ssl_ca_path β†’ --ssl-capath
  • mysql_ssl_cipher β†’ --ssl-cipher

username

password

Okay so these two override the methods that the target normally provides. Here's why that's lowkey genius: if your target has no username or password, Sqitch goes looking for them in the /etc/my.cnf and ~/.my.cnf files. (Yes, those are the MySQL config files, more deets over at the MySQL password-security docs: <https://dev.mysql.com/doc/refman/5.7/en/password-security-user.html>.)

🚨 Real talk, bestie: those files must limit access only to the current user β€” that means mode 0600. Like, don't be out here leaving your creds readable by the whole group chat. 😭

When it goes hunting, Sqitch looks for a username and password under the [client] and [mysql] sections β€” in that order. Periodt. πŸ’œ


πŸ‘‘ AUTHOR πŸ‘‘

David E. Wheeler <david@justatheory.com>

Absolute legend. Slay. ✨


🌈 LICENSE 🌈

Copyright (c) 2012-2026 David E. Wheeler, 2012-2021 iovation Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


And that's the whole page, gorgeous. This lil' doc dropped as part of perl v5.40.1 on 2026-07-26, filed under App::S...:mysql(3pm) β€” go forth and migrate your schemas. πŸ«ΆπŸŽ€πŸ”₯

πŸ“¦ where this page comes from