Skip to content

Releases: pressly/goose

v3.26.0

03 Oct 13:32
v3.26.0
3d1474d

Choose a tag to compare

What's Changed

  • Add *slog.Logger support to goose provider via option WithSlog (#989)
  • Add convenience WithTableName provider option (#985)
  • Minor bug fixes and dependency upgrades
  • Add general purpose Locker interface to support DB locking with a table-based Postgres
    implementation via lock.NewPostgresTableLocker (#993 for more details)
    • Unlike SessionLocker, this uses the *sql.DB connection pool
    • Add WithLocker option to goose provider

New Contributors

Full Changelog: v3.25.0...v3.26.0

v3.25.0

24 Aug 20:50
v3.25.0
35106f1

Choose a tag to compare

What's Changed

  • Upgrade go deps (#976)
  • Remove references/tests for vertica and add deprecation warnings (#978)
  • Add Aurora DSQL as a new database dialect to goose Provider (#971)
  • Add DDL isolation support for Aurora DSQL compatibility (#970)
  • Update Apply to respect no versioning option (#950)
  • Expose dialect Querier (#939)

New Contributors

Full Changelog: v3.24.3...v3.25.0

v3.24.3

07 May 01:31
v3.24.3
c6cc2e2

Choose a tag to compare

What's Changed

  • Add GOOSE_TABLE environment variable -- lower priority than -table flag, but higher than the
    default table name. (#932)
  • Dependency updates

New Contributors

  • @d6o made their first contribution in #932

Full Changelog: v3.24.2...v3.24.3

v3.24.2

28 Mar 02:15
v3.24.2
b63ff99

Choose a tag to compare

What's Changed

  • Add TableExists table existence check for the mysql dialect (#895)
  • Upgrade minimum Go version to 1.23
  • Various dependency updates

New Contributors

Full Changelog: v3.24.1...v3.24.2

v3.24.1

07 Jan 14:33
v3.24.1
dc90c17

Choose a tag to compare

What's Changed

  • Fix regression (v3.23.1 and v3.24.0) in postgres migration table existence check for
    non-default schema. (#882, #883, #884).

New Contributors

Full Changelog: v3.24.0...v3.24.1

v3.24.0

19 Dec 16:08
v3.24.0
bfb3550

Choose a tag to compare

What's Changed

  • Add support for loading environment variables from .env files, enabled by default. by @rwwwx in #864
    • The default file name is .env, but can be changed with the -env=<filename> flag.
    • To disable this feature, set -env=none.
  • fix: CVE-2024-45338 in golang.org/x/net bump to v0.33.0 by @k2589 in #880

New Contributors

Full Changelog: v3.23.1...v3.24.0

v3.23.1

12 Dec 15:23
v3.23.1
1a5b755

Choose a tag to compare

What's Changed

  • feat: postgres migration table existence check by @mfridman in #860

    • Store implementations can optionally implement the TableExists method to provide optimized
      table existence checks (#860)
    • Default postgres Store implementation updated to use pg_tables system catalog, more to follow

    • Backward compatible change - existing implementations will continue to work without modification

      TableExists(ctx context.Context, db database.DBTxConn) (bool, error)
  • Update README - examply mssql connection string by @alex9311 in #866

  • fix: CVE-2024-45337 in golang.org/x/crypto bump to v0.31.0 by @k2589 in #871

New Contributors

Full Changelog: v3.23.0...v3.23.1

v3.23.0

21 Nov 14:31
v3.23.0
8d88226

Choose a tag to compare

What's Changed

  • Add WithLogger to NewProvider to allow custom loggers (#833)
  • Update Provider WithVerbose behavior to log all SQL statements (#851)
  • Upgrade dependencies and rebuild binaries with latest Go version (go1.23.3)

New Contributors

Full Changelog: v3.22.1...v3.23.0

v3.22.1

17 Sep 12:43
v3.22.1
d994786

Choose a tag to compare

  • Upgrade dependencies and rebuild binaries with latest Go version (go1.23.1)

v3.22.0

03 Sep 12:26
v3.22.0
5193dcb

Choose a tag to compare

Changelog

  • Minimum Go version is now 1.21

  • Add Unwrap to PartialError (#815)

  • Allow flags anywhere on the CLI (#814)

    goose uses the default Go flag parsing library, which means flags must be defined before the
    first positional argument. We've updated this behavior to allow flags to be defined anywhere. For
    more details, see blog post.

  • Update WithDisableGlobalRegistry behavior (#783). When set, this will ignore globally-registered
    migrationse entirely instead of the previous behavior of raising an error.

    This enables creating isolated goose provider(s) in legacy environments where global migrations may
    be registered. Without updating this behavior, it would be impossible to use
    WithDisableGlobalRegistry in combination with provider-scoped WithGoMigrations.

    Specifically, the following check is removed:

if len(global) > 0 {
  return nil, errors.New("global registry disabled, but provider has registered go migrations")
}
  • Postgres, updated schema to use identity instead of serial and make tstamp not nullable (#556)
- id serial NOT NULL,
+ id integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,

- tstamp timestamp NULL default now(),
+ tstamp timestamp NOT NULL DEFAULT now()
  • MySQL, updated schema to not use SERIAL alias (#816)
- id serial NOT NULL,
+ id bigint(20) unsigned NOT NULL AUTO_INCREMENT,