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 lower_case_table_names
on 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 lower_case_table_names
.
SSH tunnels
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/config
for authentication, hostname aliases, and more - Interacts with OpenSSH
ssh-agent
automatically, via UNIX socket (Linux and MacOS) or named pipe (Windows) known_hosts
management, followingUserKnownHostsFile
andStrictHostKeyChecking
configuration from~/.ssh/config
- 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
screen
ortmux
may 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_phase
server variable can be enabled to avoid replication lag when running an onlineALTER TABLE
- Descending indexes: individual columns in an index may have a
DESC
modifier, improvingORDER BY
performance in some cases - Function parameters may now have
IN
,OUT
, orINOUT
modifiers, just like stored procedures
For more information on Skeema v1.8.0, full release notes are available on GitHub.