Skip to content

v1.10.0

Latest
Compare
Choose a tag to compare
@pmdarrow pmdarrow released this 11 May 21:24

Changelog

  • 8739f73 -- Fix to support bit fields when generating DDL statements.
  • bc18794 .skeema files: stop climbing dir hierarchy at repo base or $HOME
  • 54dc945 2nd iteration of the tengo tests
  • 89eac4c Add Instance methods for obtaining version and flavor
  • 8497916 Add Instance.String(); add methods for dropping schemas and tables
  • 7b9110d Add IsDatabaseError convenience function
  • 9be62f0 Add MariaDB 10.4 to list of officially supported flavors
  • 3bfc1de Add MariaDB 10.4 to list of supported flavors
  • a478b3a Add MariaDB 10.5 to list of officially supported flavors
  • a12df24 Add Percona Server 8.0, Percona Server 5.5 to supported list
  • e393352 Add README.md, along with LICENSE and NOTICE (Apache v2)
  • 0e44cfd Add Schema.Table() convenience method, and change more methods to use ptr receivers
  • c3175f6 Add SourceString and Source methods to DockerizedInstance (skeema#15)
  • 244fde5 Add StatementModifiers.AllowUnsafe field, unifying old AllowDrop fields
  • 9e01abd Add a Dep Gopkg.toml; try reverting to Golang 1.9 in Travis
  • 11b5a67 Add ability to skip binlogging in several methods (API-breaking change)
  • bed4e85 Add comments for every exported method, and other fixes from golint
  • cf63703 Add comments to all exported symbols, and other golint fixes
  • 6594887 Add diff support for InnoDB FULLTEXT indexes
  • cda9abd Add diff support for generated columns (MySQL 5.7+, MariaDB 10.2+)
  • 470ecdc Add error predicate functions
  • 543f9ad Add filtering and speedups to some Instance methods
  • 08428bc Add full Instance support for params; improve error-handling
  • 7be9f28 Add initial Travis CI integration
  • 1517f5c Add initial diff logic for partitioning status
  • 886496e Add integration test suite for extensive coverage
  • b881c6d Add issue templates [ci skip]
  • 2aaae0c Add linter for future reserved words
  • e41d11f Add locking and de-duping for Instance Protect internal state of each Instance with its own RWMutex. Keep a global map of Instances by base DSN. If a duplicate request comes in, return the existing Instance. It is now illegal to request a duplicate Instance that has a DSN only differing by username, password, or default params. In the future, tengo may offer other methods for changing these fields explicitly on an existing Instance, but never implicitly by calling NewInstance.
  • 87c9ccd Add logic around whether to include or exclude next-auto-inc in DDL / command output
  • a4d88bc Add method Flavor.HasInnoFileFormat(), returns whether innodb_file_format var exists
  • a2c1015 Add method Flavor.InnoRowFormatReqs()
  • 38a8e4f Add more debug logging when --debug is supplied
  • ce85565 Add more parser safeties and edge-case improvements
  • 63ed4bd Add new --lint-auto-inc checker for auto_increment sanity
  • 90dde92 Add new --lint-definer checker for restricting routine definers
  • 0f804d5 Add new --lint-display-width checker for int-type cols
  • a0734b1 Add new --lint-dupe-index duplicate index checker
  • 67a35ca Add new --lint-has-fk checker for presence of foreign keys
  • d44bea3 Add new --lint-has-float checker for presence of floating-point types
  • c9b175c Add new --lint-has-routine checker for presence of stored procs/funcs
  • 009de55 Add new --lint-has-time checker for presence of temporal col types
  • e4df168 Add new ShellOut methods for capturing/parsing STDOUT
  • 18c7236 Add new StatementModifier field CompareMetadata
  • f104402 Add new func ParseFlavor; use in Instance.hydrateFlavorAndVersion()
  • b15bd73 Add new linter for PK type
  • 0ca0bc9 Add new method Instance.DropRoutinesInSchema()
  • 0b1c208 Add new method Instance.SchemasByName() for convenience
  • 9fc6dbd Add new method Instance.StrictModeCompliant()
  • a0f8510 Add new method Instance.TableHasRows()
  • 8af4a9b Add new method Table.ClusteredIndexKey()
  • d385890 Add new option temp-schema-binlog controlling workspace DDL replication
  • 5055cf0 Add new utility function ParseCreatePartitioning()
  • b22daf5 Add option temp-schema-threads for configurable concurrency
  • d55cfbb Add option to ignore .my.cnf file
  • 46f02d7 Add optional support for ALGORITHM and LOCK clauses in ALTER TABLE via StatementModifiers
  • b98b32a Add partitioning-related structs and introspection
  • 47f003a Add recommended workflow to docs
  • 1626b82 Add regex options ignore-table and ignore-schema (skeema#15)
  • ed5d99a Add semicolon and newline to end of sqlfiles when writing, and return byte written count
  • 2881ef8 Add skeema lint, and skeema pull --normalize, to rewrite files in mysql SHOW CREATE TABLE format
  • efb15b7 Add skeleton README, along with NOTICE and LICENSE (Apache v2)
  • f84d944 Add support for COMMENT clauses in table, columns, and index definitions
  • a9cb684 Add support for MariaDB 10.2 and 10.3
  • a4cceec Add support for MariaDB 10.5
  • dd14442 Add support for MySQL 5.5
  • 7307066 Add support for Percona Server 8.0 and Percona Server 5.5
  • f16daa0 Add support for auto-detecting tables using features not yet supported by Tengo
  • fde6ea8 Add support for column-level CHARACTER SET and COLLATE clauses
  • 2272337 Add support for configuring arbitrary MySQL session vars upon connection
  • 96e6cf4 Add support for detaching a Schema from its origin Instance
  • ab2facc Add support for disable_ and enable_ prefixes
  • 04193a8 Add support for routines (stored procs and funcs)
  • 18003d2 Add support for routines (stored procs and funcs)
  • 6339cfd Add support for schema-level default charset and collation
  • f003699 Add support for table-level create_options
  • 3f4e124 Add support for table-level create_options
  • 20aa427 Add support for timestamp column special default and on-update behavior
  • 5cfb37d Add support for unix domain sockets
  • 72ffc93 Add test case reproducing MySQL 5.5 FK order bug
  • f385ceb Add test coverage for GetDockerizedInstance and Destroy
  • 5480446 Add tests, incorporate feedback
  • 1ea32f5 Add two more Flavor-related utility methods
  • 14ec6dd AddPartitioning, RemovePartitioning: fix multi-clause ALTERs
  • 6808c62 Additional tweaks to FK ordering issue in 5.5
  • 8081d3d Allow DDL statement generation to return errors Add new StatementModifiers to allow or forbid destructive actions (DROP TABLE or ALTER TABLE ... DROP COLUMN).
  • 8c25ea0 Allow diffs to/from nil schemas
  • 46837fb Allow dropping tables and/or columns, if corresponding option supplied
  • 00c830a Allow host option to be a comma-separated list of hosts
  • 7216555 Allow lint to continue linting past the first error in a directory
  • 68f71e0 Avoid information_schema capitalization issues in MySQL 8.0+
  • 8d699fa Begin laying groundwork for service discovery and sharding
  • 41b6a50 Better handling for invalid connection information (do not panic)
  • ba543e2 Better handling of errors in config parsing; skip dir creation if cannot connect in init
  • 348fda9 Blocked DDL now returns new ForbiddenDiffError type, rather than errorString
  • c321160 Bring back former option callback logic via more direct call paths
  • 2e2e10f Bug fix for NormalizeCreateOptions(): regexps must be ordered consistently
  • c190264 Bugfix: overzealous config check was breaking init
  • 10153c0 BulkDropOptions: permit a *Schema to be supplied
  • aac8a06 Bump skeema version number for partitioning beta 1
  • 9b1348f Bump version to v1.4.4
  • c2aa734 Bump version; update credits in README
  • 7d20c8c CHECK constraints: workaround for MariaDB I_S truncation
  • b578d01 CI: Update Golang version and MySQL integration test versions
  • 4ee71de CI: Update Golang version and MySQL integration test versions
  • 9a55af6 CI: make Coveralls errors fatal again
  • 389e2b9 CI: move from Travis to GitHub Actions
  • 40f89e1 CI: move from Travis to GitHub Actions
  • 95ccfc0 Cache targets in config. Also a few minor fixes found via go vet.
  • 8458b80 Change how unsupported tables are treated in diffs
  • 69bd66e Change the Flavor abstraction to include major and minor version numbers
  • cb9f9a0 Check constraints: account for ordering in diff
  • 4938c1b Clean up error-handling such that we never panic due to a connection or query error
  • fd8d202 Cleaning up option-handling for init command
  • be1c9f8 Code re-org to make shellout execution logic more generic
  • a41ba07 Column reordering test: keep code for exhaustive random test (not currently in use) [ci skip]
  • bca198e Column reordering: implement proper LIS algo
  • fc3a175 Column.Definition(): fix quirks with timestamp nullability
  • f281200 Command now return error instead of int exitcode; replace panicky Config.MustGetInt with Config.GetIntOrDefault
  • dcc4fc1 Complete refactor of configuration, flag-handling, target struct, etc
  • 71e2f93 Connection pool conn management adjustments
  • fc157f5 Created the Tengo tests for constraints
  • 9713a07 DDL: Support StatementModifiers.IgnoreTable to filter on table name
  • 4985a70 Default to using a consistent, strict sql_mode. Fixes skeema#31
  • 804a538 Dependencies: Docker-related updates
  • 60d4a52 Dependencies: update github.com/fsouza/go-dockerclient
  • 4260504 Dependency updates
  • 7406ea7 Dependency updates
  • 1f12922 Dependency updates
  • e636fa6 Dependency updates and connection pool tweaks
  • e98d730 Deprecate option --reuse-temp-schema, and fix bugs in it
  • df397c2 Detect syntax errors in .sql files and provide better error with file path
  • ad11f1f Diff support for InnoDB transparent page compression
  • 292b645 Diff support for tables using Percona Server column compression
  • 1822452 Dir.InstanceDefaultParams(): Set 3 more session variables
  • b2365db Do not re-sort secondary indexes; must preserve default ordering to match SHOW CREATE TABLE
  • fc4dd3e Do not use pointer to loop alias var
  • baa9a9c Docker: disable TLS in conns to local DB container
  • 269db9a Docker: don't break existing images on tag change
  • 758a8d6 DockerizedInstance: avoid leaking open file descriptors
  • c597ea7 DockerizedInstance: fix bugs in handling empty password
  • 390129a DockerizedInstance: re-inspect container if no port mapping yet
  • bb1513a DockerizedInstance: support specifying non-blank default connection params
  • 7ca6bd8 DockerizedInstance: two small fixes for edge-cases
  • 2c174ef Docs and comments: Use consistent terminology for lists
  • 540de97 Don't force strict mode; add new lint-zero-date rule
  • ffa83b1 Don't prompt for password if explicitly set to blank string. Fixes skeema#73
  • 4aaa5be DropTablesInSchema: Parallelize queries; avoid full schema introspection
  • 6817923 DropTablesInSchema: Support partition-at-a-time dropping
  • 0e0fb18 DropTablesInSchema: reduce stall risk
  • 89e3cb2 EscapeValueForCreateTable(): handle \n and \r
  • 7d3c618 Even more MySQL 8.0 compatibility fixes
  • b123469 Exempt DROP TABLE statements from readTimeout query timeout
  • 99590af Exit-status changes for diff, push, pull, and lint * diff and push now return nonzero if any directories were skipped due to errors * pull now returns nonzero if any directories were skipped due to errors, and no longer chokes on SQL syntax errors * lint now returns nonzero if any errors occurred (whether fatal or just SQL syntax errors)
  • 212720e Extend ignore-schema to pull, lint, push/diff; other lint improvement
  • d21902f FULLTEXT: don't emit ALTERs adding multiple ADD FULLTEXT KEY
  • accef1a Finish fleshing out ddl_test.go
  • d7f0d0b Finish fleshing out table_test.go
  • 8d463b5 Fix 3 minor edge-case bugs around skeema pull --normalize:
  • 546b189 Fix Column.Equals -- previously was not considering changes in defaults or extras
  • 092b231 Fix Flavor.Supported() for MariaDB 10.4
  • cd95c4d Fix bad .gitignore line which was accidentally preventing vendoring of skeema/mycli and skeema/tengo
  • 6ca9526 Fix bugs in FULLTEXT index comparisons
  • f24a25c Fix edge case bug in Instance.CanConnect()
  • c058cb9 Fix error from foreign key with same name as unique key
  • 7838cbe Fix failing Docker integration test
  • 0363f9d Fix failing test
  • 2cf3f3d Fix failing test in applier subpackage
  • 661df07 Fix for MySQL 5.5 FK order bug (skeema#11)
  • 55ee5e2 Fix handling of .git and other hidden dirs when iterating through filesystem
  • d4b703d Fix handling of aggressive server wait_timeout
  • 34b3839 Fix mysql:5.7 test failure of SkeemaIntegrationSuite.TestForeignKeys due to 5.7 strict sql_mode
  • ee8b941 Fix nullability for non-timestamp default values
  • 0185d2c Fix nullable cols with defaults; exclude schema drop/create from diff string
  • 7d0dbaf Fix panic due to nil pointer exception
  • bd0e038 Fix parser to handle a few missing edge cases
  • f360414 Fix partitioning edge cases like DATA DIRECTORY
  • d503013 Fix review feedback
  • 18bf68f Fix several MySQL 8.0 incompatibilities, and fix bug in column reordering
  • 7776645 Fix sort order for foreign keys, especially re: underscores
  • acf17a9 Fix test failure in previous commit - consider mysql:8.0 supported
  • 0a7908a Fix two misspellings in comments [ci skip]
  • aeac94e Fixes for Docker edge-cases (--workspace=docker, integration tests)
  • 533d073 Fixes for changes in MySQL 8.0.19
  • 1d7a994 Fixes for help handler
  • 08d505b Fixes for proper escaping of column default values; also mysql 5.6 allows datetime to use current_timestamp too
  • 0c1e3e5 Fixing logic for column reordering to achieve goal in fewer alter clauses; move add and drop col logic to separate methods too
  • 97e9386 Flavor: include patch version; misc fixes for MySQL 8.0.19
  • 1beaed8 Flesh out --alter-wrapper external command support
  • e921931 Flesh out implementation of init command
  • 9b15df0 Flesh out initial version of partitioning diff logic
  • 528fccd Fleshed out initial implementation of diff command
  • 4e25baf Fleshing out init command, and starting some pre-reqs for diff command
  • f589af3 ForbiddenDiffError: add missing comments (found via golint)
  • 4d1fd1d Foreign key naming cosmetic by default; override with --exact-match
  • 9139dc8 Foreign keys: fix bug in handling NO ACTION clauses
  • 069e442 Fractional second fix: treat types timestamp(N) / datetime(N) as temporal
  • d7318c1 Fulltext indexes with parsers: add unit test coverage
  • f7c677f Fully support MariaDB column compression
  • 4c9abc8 Further improve separation/ordering of AddForeignKey clauses
  • 9715daf Generate a correct diff when creating an unsupported table
  • 5bedfdb Generic handling of different db object types
  • 17824da Get rid of method Schema.OverridesServerCharSet()
  • 9ffec5e Get rid of need for Instance.Refresh; rename Schema.Refresh and do not auto refill cache immediately
  • 52c50c4 GoReleaser config: specify commit author for homebrew
  • 5697cfe Golang: bump to 1.17 for CI, modules
  • 767b115 Golang: bump to 1.18 for CI, modules
  • 6610558 Handle MySQL 8.0 retention of no-op column-level charset/collate
  • 30fe4ee Handle newlines and carriage returns in column defaults or comments
  • 8c5b200 If a panic occurs, only display full stack trace if --debug in use
  • 6c82315 Ignore column order
  • c4cd15d Ignore views in schemas without breaking
  • c51eee3 Ignore/strip CREATE TABLE clauses that have no effect in InnoDB
  • 820a55a Implement integration testing suite for Tengo, getting test coverage up to 87.7%
  • 448a28a Implement pull command, to update fs with any changes made to db outside of skeema
  • 1b16027 Implement support for integration test suites with easy usage of dockerized database instances
  • f3d16c2 Improve JSON representations of core structs
  • 3a1a71c Improve behavior when skeema is invoked from the wrong dir tree
  • 00510a8 Improve connection management and performance
  • f51bc6b Improve handling of instances with connectivity problems
  • d6662fa Improve help/usage text by grouping options
  • 335953d Improve output for SQL statements that cannot be parsed
  • 7e816b0 Improve output readability around SQLFile errors
  • 614bf85 Improve parsing of quoted values and escape-handling
  • 673fb36 Improve performance on servers with many schemas
  • 318a997 Improve test coverage of things outside of integration suite
  • d0db7a3 Incorporate reviewer feedback
  • cdd5ca0 Increase concurrency further for some temp schema operations
  • 35c1797 Increase default readTimeout; exclude ALTERs from timeout
  • c32575d Index visibility alteration: fix compat with StrictIndexOrder
  • 6707a59 Index.RedundantTo: account for uniqueness constraints
  • 9c935db Initial git import
  • 81fa28b Initial git import. WIP / not functional.
  • 6d55c49 Initial implementation of push command, for applying changes from fs to db
  • d03a1f7 Initial partitioned table support
  • 4154de3 InnoDB tables: strip no-op clauses from SHOW CREATE TABLE
  • 2c6c925 Instance and Flavor: more robustness around parsing problems
  • 3b5e329 Instance must keep a connection pool per default db (no USE statement support in database/sql)
  • 5f7e134 Instance now uses go-sql-driver/mysql dsn parser to maintain host/port/user/pw locally
  • 316d648 Instance.CanConnect(): Prevent connection leak after previous fix
  • b67f0f8 Instance.CanConnect: close pools immediately
  • 01dd08d Instance.CanConnect: don't cache pool; test suite fixes
  • 00d89f4 Instance.CanSkipBinlog: Fix bug with ALL PRIVILEGES
  • cf47deb Instance.Connect(): query wait_timeout from server if needed
  • f9fc5c5 Instance.Connect: nuke pool and try again if bad ping from existing conn
  • 86cdcc6 Instance.DropTablesInSchema(): Retry deadlocks from mysql 8.0
  • de64757 Instance.DropTablesInSchema: boost concurrency further
  • 03f4b9c Instance.DropTablesInSchema: fix two subtle bugs
  • c9951fe Instance.querySchemaTables(): Fix naming conflict bug between FKs / UKs
  • 927c880 Integration test suite: fix flaky TestInstanceSchemas
  • da45d88 Integration testing: Move docker image list into TENGO_TEST_IMAGES env var
  • 660bf0a Integration tests for generated cols: fix on MariaDB
  • 37c5f6f Integration tests: container cleanup in applier subpackage
  • f85849e Integration tests: speed up filtered runs
  • 9c00941 IsDatabaseError(): Make optionally variadic to select particular errors only
  • 9dff23c IsTerminal no longer exported by github.com/sirupsen/logrus
  • 515748a Keys: improve MySQL 8 features; remove pointer fields
  • 8ef8ea3 Logging: update to latest version of logrus dep
  • 75d03e7 Made a fix to constraint.go where there where excess spaces being left in the constrain definition causing the unsupported DDL error. Additionally made a potential improvement to the schema diff logic by adding a strings.Lower() to 2 comparison mechanisms; this is to avoid capital letters (which mean nothing to MySQL) from affecting the comparison
  • a672a59 Major cleanup to configuration system and related structs/methods
  • 42d3772 Major internal refactor to use subpackages
  • 6ae00e7 Major refactor to pull out command-suite framework into separate repo, and add support for environments
  • 3db4dd1 Major refactor to remove caching of instances and schemas
  • efca1a1 Make skeema version more accurate for builds from source [ci skip]
  • 0ca6b8f Make system schema name check case-insensitive
  • ea0d169 Make temp schema name configurable; optionally do not drop it when done; init/pull now ignore it if already present
  • 53de093 MariaDB 10.10 support, including new inet4 column type
  • 5b0cc10 MariaDB 10.11 support
  • 5180a9e MariaDB 10.2+ allows default values for text and blob types
  • 35d4cd3 MariaDB 10.3+ invisible column support
  • 3b4e46c MariaDB 10.3+: support INVISIBLE columns
  • 3f4cd9a MariaDB 10.5: new BINLOG ADMIN priv allows setting sql_log_bin
  • b4c58d0 MariaDB 10.6 support, including IGNORED indexes
  • c5d3ec7 MariaDB 10.6: add baseline support and fix tests
  • f5d38c4 MariaDB 10.6: support IGNORED indexes
  • 8e7551c MariaDB 10.7 support, including uuid col type
  • 1454f21 MariaDB 10.8 support
  • 9262e29 MariaDB 10.9 support
  • 412a326 MariaDB: CREATE OR REPLACE syntax for procs/funcs in Community Edition
  • b07f99a MariaDB: Fix diff ON UPDATE CURRENT_TIMESTAMP(N) fractional second precision
  • f2dcaf8 MariaDB: support latest SHOW CREATE TABLE changes
  • 794fcf7 Merge branch 'chris'
  • c1b57be Merge branch 'doc-reorg'
  • f41ceb3 Merge branch 'fk-order-mysql55'
  • 670ea24 Merge branch 'foreign-keys' of https://github.com/skeema/tengo
  • 98f6468 Merge branch 'master' into foreign-keys [ci skip]
  • 8a4862d Merge branch 'partitioning'
  • 5b9236b Merge branch 'partitioning'
  • 55f2c1b Merge branch 'wip-linters-v145' into main
  • 5a154b7 Merge pull request #1 from chrisjpalmer/master
  • fc6899b Merge pull request #1 from dashhudson/ignore-column-order
  • 9be20ec Merge pull request skeema#140 from estahn/homebrew-support
  • b825a25 Merge pull request skeema#164 from tonyqiu2020/enum-lint
  • e508983 Merge pull request skeema#17 from efixler/bit-field-defaults
  • 94eaa99 Merge pull request skeema#205 from morgo/lint-pk-type
  • c914202 Merge pull request skeema#207 from morgo/lint-future-reserved-words
  • c74262b Merge pull request skeema#23 from skeema/integration-testing
  • f8ce46b Merge pull request skeema#3 from chrisjpalmer/master
  • 3215afe Merge pull request skeema#4 from tomkrouper/auto-inc-supported
  • c00b7d1 Merge pull request skeema#44 from skeema/subpackage-refactor
  • d1fc92e Merge pull request skeema#5 from efixler/bit-field
  • 3891cbe Merge pull request skeema#6 from skeema/test-suite
  • 1d15455 Merge pull request skeema#60 from skeema/routines-rebased
  • b71e847 Merge pull request skeema#7 from skeema/remove-caching
  • bd9f6ce Merge pull request skeema#70 from johlo/lint-fixes
  • aee4754 Merge pull request skeema#71 from blueish/master
  • 5f111ad Merge pull request skeema#80 from johlo/fix-panic
  • 23dcd60 Merge pull request skeema#85 from thinQ-skeema/master
  • 7400ee2 Merge pull request skeema#9 from skeema/foreign-keys
  • 39890bd Merge remote-tracking branch 'internaltengo/tengo-import-internal' into main
  • a8bf033 Merge remote-tracking branch 'upstream/main' into lint-pk-type
  • a3c5cc8 Minor bug fix: changing default charset at table level shouldn't be unsafe
  • 135162a Minor cleanups after reviewing the code in this branch
  • 1cc4b75 Minor fixes to get generated DDL closer to SHOW CREATE TABLE output
  • 2278bb9 Minor fixes to instance string (parse port as int) and DropSchema (remove conn pool after)
  • 0fa2195 Minor improvements to skeema lint, testing
  • 3688ed8 Minor improvements to init command Prevent running init on a dir whose parents already define a host or schema. Prevent use of invalid environment names. Correctly handle --host supplied in "hostname:port" format, in terms of what gets written to .skeema file.
  • a670408 Misc minor fixes and refactoring
  • d5cce2d Misc minor test changes
  • d423761 ModifyColumn.Unsafe(): Whitelist more safe type changes
  • 0db03df Mods: upgrade github.com/go-sql-driver/mysql
  • b56d0ae Mods: upgrade github.com/jmoiron/sqlx
  • 567a054 More progress on README.md documentation
  • cdd5ef2 More robust handling of db server vendor/version
  • a9ae242 More small progress towards sharding support
  • 09948ea More table alter tests
  • d11ee6b Move Docker sandbox logic to new file docker.go with test coverage
  • 2730bfe Move UseFilteredDriverLogger() from testing.go to docker.go
  • dea018c Move skeema diff logic to skeema push --dry-run
  • 0527957 Move all 6 subpackages to new internal/ subdir
  • 1f6d52f Move documentation to skeema.io website
  • 2d305ef Move global option definitions and callbacks from option.go to skeema.go
  • 88b4eac Move most command output to STDERR via log.Info calls
  • 7268011 Move most flavor-specific logic to the display layer
  • d171afc Move some functions to different files; split up overly-large ddl.go
  • 700117c MySQL 8 index expressions: fix edge case panic
  • 02f60e8 MySQL 8 indexes: support DESC, expressions, invisible
  • deff491 MySQL 8.0.13+: Support use of default expressions
  • 728086a MySQL 8.0.13+: fix support for column default expressions
  • 9027677 MySQL 8.0.19+: fix lingering I_S int display width
  • a866906 MySQL 8.0.19: edge case fix for MODIFY COLUMN
  • c7ee397 MySQL 8.0.19: edge case fix for MODIFY COLUMN
  • d3a60af MySQL 8.0.23: invisible columns diff support
  • 131f495 MySQL 8.0.24: diff support for utf8mb3 tables
  • 2aeaf1e MySQL 8.0.24: fix handling of 3-byte utf8 charset
  • 44e227f MySQL 8.0.24: proper fix for utf8mb3 change
  • d4022fc MySQL 8.0.29: fix failing tests regarding utf8mb3
  • 6f82fb5 MySQL 8.0: Fix rare non-deterministic bug with index prefix key-parts
  • 94b0b50 MySQL 8.0: fix ability to concurrently drop tables that have foreign keys
  • e2da95d MySQL 8.0: fix ordering of table create options
  • cc2efb1 MySQL 8: Avoid FK deadlocks when concurrently creating tables
  • 9342d1e MySQL 8: Fix potential data race in deadlock handling
  • 3e197cc MySQL 8: Fix potential panic with FULLTEXT indexes
  • 1950074 MySQL 8: Fix potential panic with FULLTEXT indexes
  • 0177ef9 MySQL 8: diff fix for BINARY/VARBINARY default values
  • 0d42e3f MySQL 8: fix column default expression edge cases
  • 5a7b510 MySQL 8: fix handling of RESTRICT foreign keys
  • 702c27e MySQL 8: fix post-upgrade tables w/ non-default charset cols
  • 27b379b MySQL 8: fix potential DEFAULT expression panic
  • a03718c MySQL 8: improve robustness of utf8mb3 handling
  • ce9fff1 MySQL 8: more collation fixes for tables created pre-mysql8
  • 762da89 MySQL 8: use low lock_wait_timeout with workspace=temp-schema
  • 4e3ccd7 New Index methods for equivalency and redundancy
  • e64ca16 New Instance methods DropTablesInSchema and CloneSchema
  • c152f8a New add-environment command, convenience for adding an environment to existing .skeema file / host dir
  • da1d75a New command skeema format for reformatting files without linting
  • 43fee38 New method Instance.CloseAll() for graceful shutdown
  • 671f1bb New methods for interacting with schema default charset and collation
  • fa07500 New options struct for bulk table drops (API-breaking change)
  • 9ee4eb0 NewInstance: Temporarily allow updating default params of existing duplicate instance
  • 954ddb0 NewSchemaDiff must also return error
  • 24573e4 OS portability improvements
  • 05dd6e2 Optimize information_schema query for foreign keys
  • af9a989 Option file handling: ignore host option in .my.cnf
  • 1df782c Option files: sanity-check symlinks
  • 006af92 Option reference doc: Document the new --debug option
  • dc35ea0 Option reference doc: add entry for dry-run
  • 09e2ff4 Option-parsing errors in option files now indicate file and line number
  • e43028e Optionally ignore FK renames; refactor AlterTableClause more broadly
  • b81b89c Options to use local Docker for temporary schema (skeema#45)
  • 1978a0d Parallelize schema introspection queries
  • 1aaff23 Parse flavor properly for Ubuntu apt packages
  • a72dcb0 ParseFlavor: provide sane fallbacks for known major versions
  • d2ae6af Partitioning: fix handling of several edge cases
  • a7ba086 Partitioning: fix handling of several edge cases
  • 9129774 Partitioning: permit changes to ALGORITHM clause for KEY
  • 43e61ca Performance improvements (skeema#26)
  • 32618e4 Performance improvements after refactors in previous commit
  • e71e19e Performance: move two common static regexps to globals
  • 31a0e7a Pin dep github.com/go-sql-driver/mysql to 1.3.0 for now; add .gitignore
  • d0d99a7 Pin dep github.com/go-sql-driver/mysql to a specific revision temporarily
  • 02001f1 Portability: improve CRLF handling, path separator output
  • cc00d72 Prevent manual configuration targeting system databases
  • 007fd7b Prevent use of CREATE TABLE...LIKE and CREATE TABLE...SELECT
  • 377fb4e Procs/funcs: Ignore routines with inaccessible bodies
  • aa76814 Prompt for password if valueless --password option supplied
  • 8028adf Provide more informative exit codes
  • a172448 Put dependencies in vendor tree using Godep
  • e7670fe README.md: Attempt to bust github broken cache of one of the asciicast pngs
  • 6f4e263 README.md: fix link to online schema change tool configuration
  • 7e42a70 README.md: flesh out usage examples
  • c9e079d Re-vendor deps. Still using godep for now, may change to official dep tool in the future.
  • a050f9f Refactor SQLFile and how its errors are managed
  • 2e29a2d Refactor TableDiff into a concrete struct instead of an interface
  • ad6d55f Refactor connection pools and connection handling
  • 9fc00cc Regex banning CREATE TABLE LIKE (etc) needs to be case-insensitive
  • 2b0e749 Release pipeline: attempt to fix homebrew tap automation
  • d7cd21f Remove AUTO_INCREMENT=%d from UnsupportDDL check.
  • 7ef4673 Remove dependency on pflag; add custom mysql-like option parsing
  • 5b363ba Remove extraneous debug output in test
  • 7fe7941 Remove method Instance.CloneSchema()
  • f86a218 Remove redundant field from Partition struct
  • c932fb4 Remove unneeded strict-mode related methods
  • 1b5d369 Removed debug comments
  • 1e22515 Removed the code which forced lower case comparisons AS it is not good practice. This has been discussed in skeema/tengo#3
  • c6a54b7 Rename Constraint to ForeignKey
  • a7980bf Rename TENGO_TEST_IMAGES to SKEEMA_TEST_IMAGES and rename containers
  • 1d18414 Rename ignore-my-cnf to overrideable skip-my-cnf
  • e246c4b Replace ColumnDefaultCurrentTimestamp with ColumnDefaultExpression()
  • a228fa1 Replace Table.CreateStatement() method with exported field
  • fcb997f Requirements doc: update list of unsupported features
  • c6c4739 Restore per-dir output for pull and lint commands
  • 928d9a2 Revert "MySQL 8.0.24: fix handling of 3-byte utf8 charset"
  • 94f380a Routines parser: don't fail on empty single-line comments
  • 28fbe7a Routines parser: fix lexer for --\n comments
  • a651cef Routines: Handle non-UNIX line-endings in param list
  • 8f35bd2 Routines: fix parse failure edge-case
  • 38f40f8 Routines: treat all line-endings as UNIX-style LF
  • 6b649fe Routines: treat all line-endings as UNIX-style LF
  • b2abf55 Run dep ensure - brings back docker symlinks? [ci skip]
  • c840b0e RunSuite: Speed up filtered integration test runs
  • 921084c SQL file parser: handle multiple named schemas
  • 35488d2 SQL processor: error-handling tweaks
  • 634a8d0 SQLFile: In CREATE TABLE regex, allow . to match newlines
  • 8c83c18 SSL: prefer use of encrypted connections if available
  • dfa8156 Schema introspection: A few more fixes towards MySQL 8.0 compat
  • 075a9c3 Schema introspection: Increase SHOW CREATE concurrency slightly
  • 27c7197 Schema introspection: ensure safe session params
  • 9761d22 Schema introspection: further concurrency tweaks
  • da8b355 Schema introspection: further concurrency tweaks
  • dda2538 Schema introspection: ignore routines with inaccessible bodies
  • 7bc4211 Schema introspection: parallelize I_S queries
  • 1f34bae Schema introspection: parallelize fetching of SHOW CREATE TABLE
  • 1de02a4 Schema introspection: return early if no tables in schema, minor perf improvement
  • 8c64bac Schema introspection: use SQL_BUFFER_RESULT for SELECTs
  • a3e8197 Schema introspection: use SQL_BUFFER_RESULT for SELECTs
  • 4c1c01c Schema.Tables: handle more information_schema NULLs
  • 3916b65 Schema.TablesByName needs to operate on a pointer to support nil receiver as new schema
  • 01af1cc SchemaDiff now also keeps track of which tables did NOT change
  • db0da89 SchemaDiff: Include ALTERs to drop partitions before dropping table
  • 36be7f0 Several fixes and improvements to Dir Add Exists() method to check if underlying directory exists yet. Fix bug in FirstInstance() regarding default port number. OptionFile() now automatically parses the file after reading it. cascadingOptionFiles() should skip ~/.skeema since it is already a global file.
  • a19884b Several small fixes related to host and schema options
  • ca301be ShellOut.RunCaptureSplit: trim whitespace around tokens
  • 96bc3f4 ShellOut: Add new {PASSWORDX} variable which obscures passwords on STDOUT
  • 314163d Shellouts for host-wrapper and schema: ignore trailing spaces
  • 42d9005 Shellouts: add {ENVIRONMENT} var, passing thru positional command-line arg
  • 2a7539f Simplify CreateTable handling in pull, since tengo now does the heavy lifting
  • b74405d Simplify concurrent querying -- use DB.SetMaxOpenConns as concurrency limiter
  • fec2cf2 Simplify init DDL sanity-check, now that tengo does its own
  • 408a90b Simplify optional service discovery configuration
  • 2949c2d Simplify representation of column default values
  • ac7a758 Small tweaks after merging PR skeema#5 for bit-value literals
  • 5f6e317 SplitHostOptionalPort: do not panic if passed an empty string
  • 96a1273 Start adding support for memoized instances per Target
  • 2101e13 Start adding support for more advanced logging
  • 168805d Starting better handling for nil schemas. Still needs more work and use of new methods
  • e558166 Starting to add unit tests
  • cc9d1d8 Starting to split giant README.md into separate docs; adding more docs in the process
  • 9497560 Statement parser: one more minor CRLF fix
  • 7659d9b Statement parser: support all unicode whitespace
  • 0715253 Statement parser: support labels in procs/funcs
  • f1b1031 Stop testing on MariaDB for now
  • 9bebd1d Strict mode usage user-friendliness improvements
  • af018f2 Style tweaks to foreign key code
  • 80055cc Support COMMENT clauses for tables, columns, and indexes
  • bdc279e Support DB servers with lower_case_table_names=1 or 2 (Windows / MacOS)
  • c717fba Support MariaDB 10.2+ new information_schema changes
  • 77f12b1 Support UTF8 BOM header in .skeema option files
  • 6d71ca0 Support WITH PARSER clause for FULLTEXT indexes
  • 6bc36fe Support changes to partitioning method or expression
  • 68be104 Support changing storage engine when diffing tables
  • 403ea18 Support check constraints
  • 7ffbe12 Support dirs that map to multiple schema names for identical schema
  • ce50f80 Support for next-auto-inc in diffs, and optional statement modifiers for DDL generation
  • 282c3db Support index reordering; add new --exact-match option (skeema#30)
  • 4c902e8 Support multi-col foreign keys; avoid dropping and adding FKs in same ALTER
  • 98ba733 Support mysql 5.5; fix NULL default handling for mariadb 10.2+
  • 0e2540d Support schema default charset/collation, and schema DDL statements in diffs
  • a238cf9 Support usage text for named args, and start adding env arg to commands. Still needs actual implementation of using the arg though.
  • d66409e Surround temp schema actions with mysql locking, to prevent conflicts between concurrent goroutines
  • 844d61b Switch from Dep to modules; update mysql driver
  • 6266641 Switch from godep to dep; fix support for Golang 1.9 (skeema#27)
  • 514d205 Table diffs: improve performance in common case
  • fd45244 Table.CreateStatement: make behavior more reliable
  • 2ed7aa5 Table.Diff(): Add an additional safety check around unsupported features
  • d5d34eb Table.Diff(): Fix bug when some cols moved and others changed
  • ba3e8ce Table.Diff(): Preserve order of new secondary indexes
  • 07c1868 Table.Diff(): Support changing default charset and/or collation
  • eeee978 Table.Diff(): Support re-ordering indexes (skeema#8)
  • 30b1e3e Table.Diff: only emit warning about unsupported tables if createStatement from db has changed; fix tests to not trigger this condition accidentally
  • 098d8e2 TableDiff.alterStatement: non-InnoDB StrictIndexOrder fix
  • d287f82 Temporarily nuke vendoring, and use new capitalization of github.com/sirupsen/logrus
  • c51a2cd Test suite fixes; Docker fixes
  • 748d04d Test suite: Dockerized MySQL should only listen on 127.0.0.1
  • 7f3d61a Test suite: avoid hitting max open file limit
  • 5584e12 Test suite: fix random flapping for MariaDB page compression
  • 04432c8 Test suite: reuse containers between runs
  • d8e7e52 Test suite: skip TestNonInnoClauses for MariaDB backend
  • 1272a54 TestTableAlterModifyColumn: cover new col reorder case [ci skip]
  • 60aaace Testing logic bugfix: TestIntegration/TestDockerizedInstance was leaving one container running, now stopped correctly
  • 270fb3e Tighten up usage text for several options
  • 6f660d9 Track database flavor (vendor and version) in .skeema files
  • ab84393 Travis CI: Add coverage tracking, and checking for go vet, gofmt, golint
  • 16f4eec Travis CI: Bump Golang version to 1.13.x
  • 02c97f1 Travis CI: Bump Golang version to 1.13.x
  • 2ba95f9 Travis: Add applier package to gofmt check
  • c756378 UI: use word-wrapping in STDERR logger, --help text
  • a8180e9 Unified handling of table DDL and database DDL
  • ff545bf Unify handling of diffs across multiple object types
  • 833a1bd Unit tests: change unsupported table fixture
  • 5d154ce Update 2 vendored skeema deps for improved testing support
  • e08b536 Update CONTRIBUTING.md and PR template [ci skip]
  • 06f75e1 Update CONTRIBUTING.md and PR template [ci skip]
  • 83314bd Update README [ci skip]
  • 4ef49f2 Update README to add @tomkrouper to contributors list
  • 4b821df Update dep github.com/fsouza/go-dockerclient [ci skip]
  • 4930f00 Update dep github.com/skeema/mybase
  • e73d710 Update dep github.com/skeema/mybase to fix regex option bug
  • 272ecec Update dep github.com/skeema/tengo
  • 1a1631a Update dep github.com/skeema/tengo - fixes skeema#31
  • fba8e7d Update dep github.com/skeema/tengo - lowercase information_schema col aliases
  • d5db1f4 Update dep github.com/skeema/tengo - more test suite refactors
  • 2e3a860 Update dep github.com/skeema/tengo for Docker client refactor
  • 109d6cf Update dep github.com/skeema/tengo for new charset diff support
  • 22c347a Update dep github.com/skeema/tengo, and simplify pull and push
  • b9b4e1c Update dep github.com/skeema/tengo, and update affected callsites
  • 4e48e0b Update dep golang.org/x/sync
  • bfa1ba9 Update dependency github.com/skeema/tengo
  • b84d14b Update dependency github.com/skeema/tengo
  • 4cf282e Update deps: renamed skeema/mycli to skeema/mybase No change in functionality.
  • f3251a6 Update docs/comments that are no longer true [ci skip]
  • 653a9fc Update docs: test coverage is much more extensive now
  • 2ac876c Update driver, and limit connection lifetime
  • b5c8ea8 Update homebrew tap owner to dashhudson
  • 98654b7 Update mycli dep
  • f355692 Update mycli dep: bring in support for quoted option values
  • cd895b7 Update tengo for bit field default syntax.
  • 6831e8c Update vendor version of skeema/tengo
  • 9fe3023 Use NewInstance
  • 6bef9e1 Use consistent field names CharSet and Collation across all structs
  • 557f53c Use interpolateParams=true to avoid extra round-trips from prepared statements
  • 1930fb4 Use mycli new support for positional args
  • 63740eb Use mycli's new support for version
  • 49aa1d2 Use new error returns from tengo
  • e5eb438 Use new tengo param support
  • 81b104b User-friendliness improvements to enums, lint-* options
  • df922ef Version bump to v1.4.7
  • 164a338 Version bump: prep for 0.2 beta release
  • 4a7c19c Virtual generated columns: relax safety checks
  • 24d94aa When creating dirs for schemas, put the schema name outside of any section in .skeema, since typically schema names will be identical between environments
  • 8bb219a When parsing ~/my.cnf, also examine [mysql] option group
  • bedfebd add enum type checker
  • 0de3c57 add global options ignore-func and ignore-proc to Community Edition
  • f70ad66 added support for foreign key constraints BUT need to revise.
  • 57af2cc added support for restrict for foreign key constraints
  • bb9bdc8 allow option callbacks to return errors; improve host/port logic to handle ipv6
  • aab006f arm64: support in test suites and workspace=docker; provide Mac build
  • c0a9147 bugfix: Instance.DropSchema must close/delete all pools for the schema
  • 693267f chore: add homebrew support
  • 072e6b2 chore: fix gofmt for Go 1.17
  • 40033a0 chore: git surgery ahead of repo history import into skeema/skeema
  • cfe387f chore: reformat lists and codeblocks inside of comments
  • b36da6e chore: switch to using github.com/skeema/skeema/internal/tengo
  • dbaf2cb chore: update multiple third-party dependencies
  • 916569d ci: bump Go version to 1.19 and actions to v3
  • fdbe495 ci: ignore errors from Coveralls
  • 399bf97 connect-options: Minor updates for additional driver vars
  • 432944e connectivity: add new global option ssl-mode
  • 310164a diff --brief: skip linting and omit INFO logging
  • 30228f4 diff and push now have --verify option (enabled by default), and empty tables in temp schema are cleaned up automatically
  • d83468a diff and push: Clean up output and logging
  • 6170685 diff/push, pull: Fix dirs w/o *.sql; fix extra subdirs
  • 677d8de diff/push: AUTO_INCREMENT robustness; better unsupported diff logging
  • 4997fc2 diff/push: Add new --alter-algorithm and --alter-lock options
  • a8192d6 diff/push: Add new --ddl-wrapper option
  • 306d3bd diff/push: Add new options for conditional behavior based on table size
  • f4e5662 diff/push: Add support for InnoDB FULLTEXT indexes
  • 5591931 diff/push: Add support for fractional second precision in temporal col types
  • ca68bbe diff/push: Fix --verify to work with MySQL 5.1
  • 4b4815c diff/push: Fix all remaining bugs in column reordering
  • 0f1e67d diff/push: Fix handling of foreign key NO ACTION clauses
  • d578215 diff/push: Fix lingering int display widths in MySQL 8.0.19+
  • e7c9c76 diff/push: Fix output bug introduced yesterday
  • ce8e022 diff/push: Ignore LF vs CRLF differences in routines' param lists
  • 1e787f0 diff/push: Improve error-handling in multi-instance scenarios
  • 901df30 diff/push: Improve handling of column type change edge cases
  • 0adaabd diff/push: MariaDB inet6 type more safe conversions
  • e6d4cc2 diff/push: MySQL 8.0 fix for tables w/ multiple create options
  • a3fd521 diff/push: New option --compare-metadata for routine metadata
  • 538e187 diff/push: Preserve order of new secondary indexes
  • b1d438c diff/push: Refactor options involving unsafe operations
  • 66696b6 diff/push: Starting support for --alter-wrapper external command support (for pt-osc, gh-ost, etc)
  • b393191 diff/push: Support MariaDB column compression
  • e8b3ad4 diff/push: Support WITH PARSER clause of FULLTEXT index
  • 5f60458 diff/push: Support changing a table's storage engine
  • 5e3a1e1 diff/push: Support for InnoDB transparent page compression
  • e7ad0a3 diff/push: Support for tables using Percona Server column compression
  • d32ebdd diff/push: adjust --verify message generation
  • c6bfb73 diff/push: allow schema names in *.sql in some cases
  • 6cbff9c diff/push: allow use of CREATE TABLE...LIKE in .sql files
  • 703302c diff/push: apply ADD FOREIGN KEY alters last, after other alters
  • 97e914c diff/push: clarify some error logging
  • 8bde55a diff/push: fix MySQL 8 collation edge case verify failure
  • 3b52e87 diff/push: fix MySQL 8 handling of RESTRICT foreign keys
  • 9e2f21c diff/push: fix for MySQL 8 column default expressions
  • 150348a diff/push: fix pre-mysql8 tables that become unsupported after 8 upgrade
  • bf38edb diff/push: fix rare edge cases with MySQL expression metadata
  • 611b1b9 diff/push: improve debug logging for unsupported table-diff edge case
  • 3313bfc diff/push: initial fix for PARTITION BY LIST COLUMNS support
  • 911c2ca diff/push: more fixes for pre-8 tables that became unsupported after 8 upgrade
  • 894530f diff/push: normalize utf8mb3 across shards w/ different server versions
  • f5a0104 diff/push: run lint checks on modified objects
  • 151bdd3 diff/push: support MySQL 8.0.23 invisible columns
  • 9ed3f60 diff/push: support TABLESPACE clauses for system or file-per-table
  • 0916bb0 diff/push: support alter-algorithm=nocopy in MariaDB 10.3+
  • 9267d5d diff/push: support altering tables with generated columns
  • 9eb10ec diff/push: support check constraints
  • 59d62f1 diff/push: suppress foreign key RESTRICT vs NO ACTION diffs
  • b16aa05 diff/push: unsafe statements now checked in pre-flight
  • aa143db diff/push: unsupported-for-diff text now mentions non-InnoDB engines
  • af5adc3 diff/push: workaround for long MariaDB CHECK constraints
  • 1882bc0 diff: fix regression, errored SQLFiles must be fatal
  • afea3fd diff: several option changes to improve simplicity
  • 733ac3b do not panic on bad cli flags, exit cleanly
  • 8e41b86 docker.go: Refactor handling of Docker client + MySQL root pw
  • 2804a44 docker: disable binlog in new MySQL 8 containers
  • 2ba8464 docker: use official images for MySQL 8.0.29+ on arm64
  • 80635d9 ease-of-use: improve error messages for misuse of password option
  • 48243b9 first iteration of the constraint tests
  • ba87592 fix pull command for dirs that represent an instance AND a schema at same time
  • da593a2 fix test
  • ec51c27 fix tests
  • d164623 foreign key diffs: treat RESTRICT and NO ACTION as equivalent
  • 040cf3e fs subpackage unit tests: fix several incorrect relative paths
  • 519762f generator / version strings: standardize rc/beta modifiers
  • ef5307b go modules: Dependency updates
  • 9fe0987 ignore-table and ignore-schema: Use Config.GetRegexp
  • b35f065 improve implementation of ignore-table, ignore-proc, ignore-func
  • 85ebe3f improve panic handler and related logging
  • 68ee744 init command: unify --base-dir and --host-dir into just one --dir option This simplifies the business logic, and caters more to the default assumption that most users only have one production replica set. But it doesn't prevent advanced users from setting up a common base dir and running init from there, to set up multiple replica sets.
  • 05d2622 init, add-environment: persist more options if specified on CLI
  • de11c16 init, pull, add-environment: Sort keys in .skeema files consistently
  • d900c64 init, pull, format: Provide more error information on parse failures
  • fe2caef init, pull: Always store default-character-set and default-collation
  • b9aad4c init, pull: Sanitize SQL file names containing special chars
  • 6eef627 init, pull: fix proc/func parse failure edge-case
  • 1db5e93 init, pull: record Skeema version in new generator option
  • 2481bed init: avoid parsing SQL files in working directory
  • 1ab97ae instance.Schemas(): Add mysql 5.7+ sys schema to list of ignored schema names
  • 1ed3163 lint, diff/push: Add new linter rule --check-compression
  • a446e90 lint, diff/push: fix 3 bugs involving FULLTEXT indexes
  • c2240ab lint, format, diff, push: very minor behavior tweaks
  • 2b64cea lint, format, pull: Clearer error message if no host defined
  • 93ad4de lint,diff,push: strip linter annotation newlines if non-TTY STDERR
  • 365b568 lint-charset: allow utf8mb3 to work as alias for utf8
  • 6493b28 lint-dupe-index: respect uniqueness constraints
  • b538432 lint-has-enum: also check for SET data type
  • 06969a3 lint-has-time: improve annotation text
  • 2814062 lint-pk: explain problem with nullable UNIQUE KEY
  • 4c2ddd0 lint-reserved-word: separate MySQL vs MariaDB; cover non-tables
  • c32930d lint: Fix minor typo in bad-charset problem detector
  • 76edc20 lint: annotate dirs mixing schema name config styles
  • d39c701 lint: fix bad-charset message for columns
  • 6794e9a lint: make annotation text more helpful
  • 037cf95 lint: make sure problem messages have deterministic order
  • 41dab16 lint: minor tweak to non-syntax-error annotation messages
  • b142acf lint: new options for sanity-checking schemas (skeema#59)
  • bfdf44e lint: populate line number for mid-statement syntax errors
  • 2f9c848 lint: reformat files prior to problem checks, not after
  • 6083d80 lint: separate config options per linter rule; major internal refactor
  • 1bbc114 lint: sort annotations within same file by line number numerically
  • 5bf44c7 lint: tweak error messages slightly
  • 2a94d52 linter internals: fix tagging of MySQL server error numbers
  • 8cb30d0 linter: add new option --lint-name-case
  • 9d64b43 logging: adjustments for unsafe diff, unsupported diff, non-terminal
  • d566cd9 minor fix based on the comments
  • b021416 modified the constraint struct to be more similar to other structs which contain a reference to the skeema generated Column struct instead of containing the ColumnName as a string.
  • bf7e4ae move mariadb oracle sql mode out of reserved list (breaks other tests)
  • 16b54e4 option files: support environment variables for some option values
  • 5e35143 password option: avoid redundant prompting for same user@host
  • b004616 password option: fix multi-host prompt text
  • 406a941 password option: if not supplied, check env var MYSQL_PWD
  • ab4a84c password option: support separate STDIN prompting per dir/host
  • c0267f4 password prompt: prefer STDERR for the interactive prompt text
  • c41c437 pull, add-environment: don't mangle bools when rewriting .skeema
  • cf19abd pull, add-environment: tweak .skeema file rewriting logic
  • dfb65d9 pull, format, lint: Clearer error if named schemas present
  • 4f90ec4 pull, init, format, lint: new partitioning-related options
  • 9560935 pull, lint: minor tweak to --help text for options
  • 796de4c pull, push, diff: Permit .skeema to override flavor
  • 289fb72 pull, push, diff: attempt to clean up temporary schema if error occurs
  • 96d224c pull, push, diff: move ignore-table handling to tengo.StatementModifiers
  • 9d6f096 pull: Don't leave file with only dangling commands
  • 5aa6168 pull: New option --new-schemas to control new schema handling
  • 441eed0 pull: better handling of environments with partitioning=remove
  • 2a1834a pull: de-dupe operations by table, so file only updated once
  • eb5e9e2 pull: don't get tripped up by superfluous subdirs without .skeema file
  • 9585907 pull: handle necessary delimiter updates for routines
  • 128c80a pull: improvements to handle dirs that map to multiple schemas
  • 618c2ef pull: minor changes to error handling and logging
  • 2d3d7c4 pull: use exit code 2 for several classes of errors
  • 317eca7 push: Add foundation for concurrent execution
  • a8a3d88 push: Thread-safety fix for --concurrent-instances w/ --workspace=docker
  • ad4423a push: delay instance schema introspection until just before diff
  • fef797d push: fix display bug in final error tally (cosmetic only)
  • 4696caa push: handle ALTERs with multiple FULLTEXT keys
  • 13a5374 push: new option --foreign-key-checks
  • e739bb2 readme.md: add contributor [ci skip]
  • d73a82c schema option: permit regex values wrapped in slashes
  • 625de02 schema.go: Add comment explaining why auto_inc ignored in unsupported-table check
  • f7d5d9c schema=* now respects ignore-schema properly
  • 581fc1d skeema init: Start to iterate over schemas and tables
  • 3e40b6c sql file parser: allow unquoted unicode identifiers
  • 0cc8432 sql file processor: handle doubled delimiters such as ;;
  • 03ef009 sql file processor: ignore UTF8 BOM header
  • 1e6fe99 sql file processor: refactor command handling for clarity
  • 22b0b49 sql file processor: treat several conditions as fatal errors
  • 061f478 sql processor: close files explicitly
  • 3f1ab97 start to handle column default values
  • bb9cecc support for foreign keys now added - latest tengo installed
  • 13c401b table_test.go: coverage for a few more edge cases
  • 5eeb835 temp-schema: fix errors with certain non-SUPER users
  • 75e508e tengo.NewSchemaDiff now returns error as 2nd param, update all callers
  • a302e6c test suite: handle MariaDB innodb_read_only_compressed default change
  • 1e3eeb5 test suite: skip lower_case_table_names=2 test on Percona Server
  • a42cf1d test suite: split up tengo integration.sql
  • 28d2b0a test suites: adjustments for MySQL 8.0.30
  • eb6dce3 tests: Docker for Mac VirtioFS glitch breaks LCTN=2 testing
  • 7223ed3 tests: attempt fix for flaky metadata locking test
  • 17b9e09 tests: fix lint-pk-type integration test for older flavors
  • a1a5a6d tests: fix linter package integration test for linter rule edge case
  • 274c15a tests: minor tweaks and cleanups
  • abf8569 tests: replace statements using INSERT
  • 73cf071 tests: use Go 1.16
  • 097f205 travis CI: auto-goreleaser upon tagging
  • 086af73 updating tengo to fix MySQL 5.5 FK order bug
  • 4accfe6 upgrade dependency github.com/fsouza/go-dockerclient
  • 9a9112d upgrade dependency github.com/fsouza/go-dockerclient
  • 6640709 upgrade dependency github.com/fsouza/go-dockerclient
  • 9b760bf util subpackage: fix cranky unit test
  • 9b17218 version bump: release v1.10.0-community
  • a9ec5aa version bump: release v1.5.2-community
  • 390663c version bump: release v1.5.3-community
  • 9a41f4d version bump: release v1.6.0-community
  • d2c91d4 version bump: release v1.7.0-community
  • 4630511 version bump: release v1.7.1-community
  • b8104f0 version bump: release v1.8.0-community
  • 320c1f4 version bump: release v1.8.1-community
  • 1980132 version bump: release v1.8.2-community
  • abea99e version bump: release v1.9.0-community
  • 04e997f workspace: Fix integration test setup for mysql 5.5
  • 2718d22 workspace: Refactor locking logic to use sql.Conn instead of sql.Tx
  • d07d106 workspace: fix nil pointer panic if unstable network connection to DB
  • f896e48 workspace=docker: Improve image verification logic
  • 31f47f0 workspace=docker: Pass --connect-options through too
  • 36aa185 workspace=docker: fix connect-options edge cases
  • 03ef1e8 workspace=docker: handle rare case of missing port mapping
  • 5e971e0 workspace=docker: log warning if cleanup fails
  • 0b35439 workspace=docker: properly disable workspace conn TLS
  • 964a969 workspace=temp-schema: partitioned table locking improvements
  • b608688 workspace=temp-schema: reduce DROP TABLE concurrency