Skip to content

Latest commit

 

History

History
96 lines (73 loc) · 4.19 KB

CHANGELOG.md

File metadata and controls

96 lines (73 loc) · 4.19 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v3.16.0 - 2023-11-12

  • Added YDB support. (#592)
  • Fix sqlserver query to ensure DB version. (#601)
  • Allow setting / resetting the global Go migration registry. (#602)
    • SetGlobalMigrations and ResetGlobalMigrations functions have been added.
    • Introduce NewGoMigration for constructing Go migrations.
  • Add initial implementation of goose.NewProvider.

🎉 Read more about this new feature here:

https://pressly.github.io/goose/blog/2023/goose-provider/

The motivation behind the Provider was simple - to reduce global state and make goose easier to consume as an imported package.

Here's a quick summary:

  • Avoid global state
  • Make Provider safe to use concurrently
  • Unlock (no pun intended) new features, such as database locking
  • Make logging configurable
  • Better error handling with proper return values
  • Double down on Go migrations
  • ... and more!

v3.15.1 - 2023-10-10

  • Fix regression that prevented registering Go migrations that didn't have the corresponding files available in the filesystem. (#588)
    • If Go migrations have been registered globally, but there are no .go files in the filesystem, always include them.
    • If Go migrations have been registered, and there are .go files in the filesystem, only include those migrations. This was the original motivation behind #553.
    • If there are .go files in the filesystem but not registered, raise an error. This is to prevent accidentally adding valid looking Go migration files without explicitly registering them.

v3.15.0 - 2023-08-12

  • Fix sqlparser to avoid skipping the last statement when it's not terminated with a semicolon within a StatementBegin/End block. (#580)
  • Add go1.21 to the CI matrix.
  • Bump minimum version of module in go.mod to go1.19.
  • Fix version output when installing pre-built binaries (#585).

v3.14.0 - 2023-07-26

  • Filter registered Go migrations from the global map with corresponding .go files from the filesystem.
    • The code previously assumed all .go migrations would be in the same folder, so this should not be a breaking change.
    • See #553 for more details
  • Improve output log message for applied up migrations. #562
  • Fix an issue where AddMigrationNoTxContext was registering the wrong source because it skipped too many frames. #572
  • Improve binary version output when using go install.

v3.13.4 - 2023-07-07

  • Fix pre-built binary versioning and make small improvements to GoReleaser config.
  • Fix an edge case in the sqlparser where the last up statement may be ignored if it's unterminated with a semicolon and followed by a -- +goose Down annotation.
  • Trim Logger interface to Printf and Fatalf methods only. Projects that have previously implemented the Logger interface should not be affected, and can remove unused methods.

v3.13.1 - 2023-07-03

  • Add pre-built binaries with GoReleaser and update the build process.

v3.13.0 - 2023-06-29

  • Add a changelog to the project, based on Keep a Changelog.
  • Update go.mod and retract all v3.12.X tags. They were accidentally pushed and contain a reference to the wrong Go module.
  • Fix up and up -allowing-missing behavior.
  • Fix empty version in log output.
  • Add new context.Context-aware functions and methods, for both sql and go migrations.
  • Return error when no migration files found or dir is not a directory.