June 2, 2022
Skeema v1.8.0 is now available! This new release adds support for non-Linux database servers, SSH tunnels in the Premium CLI, and MariaDB 10.8 support.
MacOS and Windows database servers
Skeema was originally designed to operate on database servers hosted on Linux. However, it’s not uncommon to run databases natively on other operating systems, whether for local development purposes, or even for production: for example, Microsoft’s Azure Database for MySQL uses Windows servers under-the-hood.
Both Windows and MacOS use case-insensitive filesystems, unlike Linux. This adds some complexity in terms of mapping files to database objects, which MySQL and MariaDB handle with their
lower_case_table_names server variable. Skeema has always supported
lower_case_table_names=0 (Linux default), but previously had problems with
lower_case_table_names=1 (Windows default) or
lower_case_table_names=2 (MacOS default) if the names of any table, view, or database contained uppercase characters. These issues were caused by the effects of
information_schema and other metadata queried by Skeema.
Skeema v1.8 adds full support for all values of
lower_case_table_names, regardless of database server operating system. Even if your server environments span multiple operating systems – such as using Linux in production alongside MacOS or Windows in development – the mapping between
CREATE statements in *.sql files and database objects always works properly now. Skeema v1.8 also adds a new optional linter check, lint-name-case, if you wish to enforce an all-lowercase-names policy for tables and views.
To learn more about ensuring data and schema portability across operating systems, see our deep dive into
The Premium CLI now provides built-in SSH tunnel functionality. The new ssh and ssh-to-db options cover a wide range of SSH use-cases: bastion security servers / jump boxes, localhost admin connections directly on database hosts, running online schema change scripts from a unified Linux server, and more.
The SSH functionality includes a wide set of features, including:
- Supports several OpenSSH configuration options from
~/.ssh/configfor authentication, hostname aliases, and more
- Interacts with OpenSSH
ssh-agentautomatically, via UNIX socket (Linux and MacOS) or named pipe (Windows)
- Automatic keep-alives
- Multi-hop tunnels without need for agent forwarding
- SSH tunnels to database hosts optionally allow use of local UNIX sockets for database connections, instead of TCP/IP
- External scripts configured through alter-wrapper or ddl-wrapper are executed on the remote host; terminal multiplexers such as
tmuxmay be used in the wrapper command-line to protect against connectivity loss
MariaDB 10.8 support
Skeema fully supports MariaDB 10.8, which just had its first GA release on May 20. New MariaDB 10.8 features relevant to schema management include:
- The new
binlog_alter_two_phaseserver variable can be enabled to avoid replication lag when running an online
- Descending indexes: individual columns in an index may have a
ORDER BYperformance in some cases
- Function parameters may now have
INOUTmodifiers, just like stored procedures
For more information on Skeema v1.8.0, full release notes are available on GitHub.