Skip to content

@github-actions github-actions released this Jul 27, 2020 · 5 commits to main since this release

  • Compression linter: New linter rule lint-compression checks the compression settings of InnoDB tables, ensuring that each table's compression setting is found in companion list option allow-compression. These options can be used to restrict which types/sizes of compression are permitted, or require all tables to be compressed, or require that no tables are compressed. Thank you to Etsy for generously sponsoring the development of this feature! (1ed3163)
  • MariaDB 10.5 is now fully supported in Skeema. This includes proper handling of the new inet6 column type (which can be safely converted to/from binary(16)), and detection of the new BINLOG ADMIN privilege (which affects temp-schema-binlog=auto). (a4cceec)
  • Tables using column compression in MariaDB 10.3+ are now fully supported for diff operations. (b393191)

Note for macOS Catalina users: to allow execution of the Skeema binary, remove the quarantine bit (xattr -d com.apple.quarantine skeema) or right-click open via Finder once. Alternatively, build Skeema from source.

Assets 7

@github-actions github-actions released this Jun 24, 2020 · 8 commits to master since this release

  • Bug fix: unexpected fatal errors when using non-root users with certain privilege combinations (5eeb835)
  • Allow (and prefer) use of SSL/TLS for encrypted database connections by default, if server supports them (8c83c18)
  • Improve support/detection of schema names used in *.sql files, such as USE statements or CREATE dbname.tablename statements (921084c, dfb65d9, c6bfb73, 76edc20)
  • skeema pull: minor changes to error handling and logging, to be more like skeema format (618c2ef)
  • Skeema's test suite and release pipeline are now run via GitHub Actions instead of Travis CI. Additionally, this repo's default branch has been renamed main.
Assets 7

@evanelias evanelias released this May 1, 2020 · 22 commits to master since this release

  • New partitioning-related options for skeema init, skeema pull, skeema format, and skeema lint (4f90ec4)
  • Diff support for WITH PARSER clause of FULLTEXT index, allowing use of alternative parsers (e8b3ad4)
    • The ngram parser is now supported on Skeema.io CI for MySQL 5.7+ and Percona Server 5.7+, as this parser is preinstalled in these database versions.
  • Improve safety check that prevents inadvertent manipulation of system schemas (0ca6b8f)
Assets 7

@evanelias evanelias released this Feb 14, 2020 · 28 commits to master since this release

  • Diff support for tables using InnoDB transparent page compression, a feature available in MySQL 5.7+, Percona Server 5.7+, MariaDB 10.2+ (5e3a1e1)
  • Diff support for tables using column compression, a feature available in Percona Server 5.6.33+ (e7ad0a3)
  • Fixes for new edge cases in MySQL 8.0.19 (533d073, c7ee397)

These improvements have also been deployed to Skeema.io CI, which provides automatic linting on commits and pull requests. If you store your table definitions in a github.com private repo, try Skeema.io CI soon before the free beta period closes!

Assets 7

@evanelias evanelias released this Jan 10, 2020 · 33 commits to master since this release

This release adds diff support for tables using some relatively new MySQL and MariaDB features:

  • MySQL 8 invisible indexes, including generation of ALTER TABLE ... ALTER INDEX ... {INVISIBLE | VISIBLE} clauses to change index visibility
  • MySQL 8 index expressions
  • MySQL 8 descending index parts
  • MariaDB 10.3+ invisible columns
Assets 7

@evanelias evanelias released this Nov 22, 2019 · 37 commits to master since this release

For a complete description of new functionality, please see the release blog post.

  • Support for diffing/altering partitioned tables. Thank you to Etsy for generously sponsoring the development of this functionality! (#57)
  • Support for diffing/altering tables with generated columns (stored or virtual). (#49)
  • Sharding enhancement: the schema option now permits use of regular expressions to match existing sharded schemas that follow a common naming convention. (d73a82c)
  • New linter check: lint-has-float (d44bea3)
  • New option: temp-schema-threads (b22daf5)
  • New option: temp-schema-binlog (d385890)
  • Improvements to query timeout behavior (35c1797, b123469)
  • Option reuse-temp-schema is now deprecated; two edge case bugs in the option have been fixed. (e98d730)
  • Bug fix: lint and diff logic incorrectly viewed FULLTEXT indexes as equivalent/redundant to a BTREE index covering the same columns. (#110)
  • Bug fix: ignore LF vs CRLF differences in proc/func param lists. (ce8e022)
Assets 7

@evanelias evanelias released this Oct 11, 2019 · 55 commits to master since this release

This release fixes two bugs, which only affected MySQL 8.0 and Percona Server 8.0:

  • When a majority of tables in a schema contained foreign keys, deadlock errors could occur randomly, fatally interrupting Skeema's operation. (#105)
  • Skeema could panic upon introspecting tables containing a FULLTEXT index if at least one other secondary index was also present. (#106)

Thank you to all users who submitted issues recently!

Assets 7

@evanelias evanelias released this Sep 6, 2019 · 62 commits to master since this release

This release includes substantial enhancements to Skeema's linter functionality, permitting users to easily configure what database features to allow or prohibit in their environment. For a more complete description of new functionality, please see the release blog post.

  • 7 additional configurable linter checks have been added. Detect duplicate indexes, identify overly-small auto_increment columns, flag unusual int display widths, limit allowed definers for procs/funcs, restrict usage of several MySQL features, and more.
  • skeema diff and skeema push now automatically lint any new or modified objects.
  • Linter configuration has changed. Each linter check now has its own option, rather than being configured through the combined errors and warnings options.
  • All new linter functionality is also now available in the SaaS Skeema CI system. Add it to your GitHub schema repo and get instant linting and diffing on all pull requests!
  • Now supported: MariaDB 10.4
  • Now supported: FULLTEXT indexes
  • New command: skeema format reformats CREATE statements without otherwise linting
  • Bug fix: empty single-line comments inside the body of a proc/func were previously causing parse errors (#96)
Assets 7

@evanelias evanelias released this Aug 19, 2019 · 88 commits to master since this release

This release contains bug fixes for several edge cases:

  • MySQL 8.0 and Percona Server 8.0: tables with multiple create options (e.g. ROW_FORMAT, STATS_AUTO_RECALC, etc) were sometimes erroneously marked as unsupported for diff. (#88)
  • Procs/funcs could not be parsed if their param list formatting contained embedded newlines, and Skeema was being run as a non-root user. (#95)
  • workspace=docker was overly cautious around image verification between runs. (f896e48)
  • Sharding options involving shelling out to an external script (host-wrapper, backtick-wrapped schema) could confusingly mis-parse the delimiter used in the script's output if any trailing newline/whitespace was present. (314163d)

Thank you to all users who submitted issues recently!

Assets 7

@evanelias evanelias released this Jul 15, 2019 · 93 commits to master since this release

This release includes several bug fixes:

  • Procs/funcs with inaccessible bodies are now ignored. This condition occurs when running Skeema as a non-root user with insufficient privs to manipulate these routines. Previously this caused an error. (#81)

  • In MySQL 5.5 and Percona Server 5.5, tables with multiple foreign keys were sometimes erroneously marked as unsupported for diff. This is now fixed. This bug only affected 5.5 and older. (#83)

  • skeema lint no longer panics with a stack trace if the database server is inaccessible. (#80)

  • skeema lint now reformats SQL files prior to performing linting, rather than the other way around. The previous behavior could lead to annotations with the wrong line number.

  • Some distributions of MySQL and MariaDB include extra comments in the server's version_comment variable, which could result in Skeema failing to auto-parse the vendor properly into the flavor variable. This previously affected distributions via Ubuntu, Homebrew, and possibly others. This is now fixed.

Thank you to @johlo and @thinQ-skeema for code contributions, and to all users who submitted issues recently.

CI beta

If you store your schema repo on GitHub, check out the new Skeema.io CI beta! This new system automatically lints and diffs each commit and pull request, providing continuous integration for schema changes directly inside GitHub's UI.

Assets 7
You can’t perform that action at this time.