github skeema/skeema v1.8.1

latest releases: v1.11.2, v1.11.1, v1.11.0...
22 months ago
  • Tables with explicit TABLESPACE innodb_system or TABLESPACE innodb_file_per_table clauses are now supported for diff operations. These clauses permit overriding the server's innodb_file_per_table setting on an individual table basis. This syntax is only available in MySQL 5.7+, and is relatively rare. (9ed3f60)
  • MySQL 8 bug fix: under some rare conditions, tables can report different next AUTO_INCREMENT value in information_schema vs SHOW CREATE TABLE, even with information_schema_stats_expiry=0 which Skeema automatically uses for its sessions. When this occurred, tables were unsupported for diff operations. To solve this, Skeema now relies on the SHOW CREATE TABLE value exclusively, and these tables are now properly supported for diffs. (677d8de)
  • Internal concurrency improvements should provide performance benefits in some scenarios, such as running Skeema with high network latency, a large count of procs/funcs, and/or operating on multiple schemas at once. (f9a6bb2)
  • When Skeema is unable to generate diff DDL for a table, the extra information logged by --debug now makes it clearer which side of the diff was problematic. A similar improvement has been made to the output of --verify in the rare case of verification failing. (#52, 677d8de)
  • Whenever skeema pull or skeema add-environment needs to rewrite a .skeema file, some option values are now rewritten differently:
    • String or enum type options that have been set to an empty-string value are now rewritten to use the "skip" prefix instead. For example, lint-pk='' is now rewritten as skip-lint-pk. These configurations have the exact same effect (and in this specific example both are equivalent to lint-pk=ignore), but the empty-string value was less clear. (cf19abd)
    • Premium CLI bug fix: If a .skeema file contained strip-definer with no value (implying =true), previously these commands would incorrectly rewrite this as strip-definer= (empty value implying false). Now fixed.
  • In a sharded environment in which shards are running different server versions (e.g. some shards on MySQL 8.0.28 and others on 8.0.30), differences in the server's metadata representation of the legacy three-byte "utf8" vs "utf8mb3" charset (and corresponding collations) are now ignored by default in skeema diff and skeema push. (894530f)
  • Some unit tests and integration tests required minor improvements to handle MySQL 8.0.30's metadata changes regarding legacy three-byte utf8mb3 collations. Aside from test suite adjustments, Skeema itself was already fully compatible with MySQL 8.0.30. (28d2b0a)

An installation guide and full documentation are available on our website skeema.io.

Don't miss a new skeema release

NewReleases is sending notifications on new releases.