Releases: pressly/goose
v3.26.0
What's Changed
- Add
*slog.Loggersupport to goose provider via optionWithSlog(#989) - Add convenience
WithTableNameprovider option (#985) - Minor bug fixes and dependency upgrades
- Add general purpose
Lockerinterface to support DB locking with a table-based Postgres
implementation vialock.NewPostgresTableLocker(#993 for more details)- Unlike
SessionLocker, this uses the*sql.DBconnection pool - Add
WithLockeroption to goose provider
- Unlike
New Contributors
- @emmanuel-ferdman made their first contribution in #983
- @jamesleeht made their first contribution in #982
Full Changelog: v3.25.0...v3.26.0
v3.25.0
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
What's Changed
- Add
GOOSE_TABLEenvironment variable -- lower priority than-tableflag, but higher than the
default table name. (#932) - Dependency updates
New Contributors
Full Changelog: v3.24.2...v3.24.3
v3.24.2
What's Changed
- Add
TableExiststable existence check for the mysql dialect (#895) - Upgrade minimum Go version to 1.23
- Various dependency updates
New Contributors
- @eest made their first contribution in #878
- @WilliamNHarvey made their first contribution in #895
- @BorzdeG made their first contribution in #901
- @R0masik made their first contribution in #862
Full Changelog: v3.24.1...v3.24.2
v3.24.1
What's Changed
- Fix regression (
v3.23.1andv3.24.0) in postgres migration table existence check for
non-default schema. (#882, #883, #884).
New Contributors
- @matthewrobinsondev made their first contribution in #885
- @AndersSoee made their first contribution in #884
Full Changelog: v3.24.0...v3.24.1
v3.24.0
What's Changed
- Add support for loading environment variables from
.envfiles, 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.
- The default file name is
- 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
What's Changed
-
feat: postgres migration table existence check by @mfridman in #860
- Store implementations can optionally implement the
TableExistsmethod to provide optimized
table existence checks (#860)
-
Default postgres Store implementation updated to use
pg_tablessystem catalog, more to follow -
Backward compatible change - existing implementations will continue to work without modification
TableExists(ctx context.Context, db database.DBTxConn) (bool, error)
- Store implementations can optionally implement the
-
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
What's Changed
- Add
WithLoggertoNewProviderto allow custom loggers (#833) - Update Provider
WithVerbosebehavior to log all SQL statements (#851) - Upgrade dependencies and rebuild binaries with latest Go version (
go1.23.3)
New Contributors
- @barloc made their first contribution in #810
- @vfoucault made their first contribution in #833
- @Fish1 made their first contribution in #853
Full Changelog: v3.22.1...v3.23.0
v3.22.1
- Upgrade dependencies and rebuild binaries with latest Go version (
go1.23.1)
v3.22.0
Changelog
-
Minimum Go version is now 1.21
-
Add
UnwraptoPartialError(#815) -
Allow flags anywhere on the CLI (#814)
gooseuses the default Goflagparsing 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
WithDisableGlobalRegistrybehavior (#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
WithDisableGlobalRegistryin combination with provider-scopedWithGoMigrations.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
tstampnot 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,