@@ -5,7 +5,127 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) , and this project
66adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ## [ Unreleased]
8+ ## Unreleased
9+
10+ - Support [ environ credentials] ( https://github.com/ydb-platform/ydb-go-sdk-auth-environ/?tab=readme-ov-file#auth-environment-variables )
11+ for YDB using parameter ` use_env_credentials ` in connection string.
12+ Example:
13+ ``` bash
14+ export YDB_ACCESS_TOKEN_CREDENTIALS=" my-secret-token"
15+ goose ydb " grpcs://localhost:2135/local?go_query_mode=scripting&go_fake_tx=scripting&go_query_bind=declare,numeric&use_env_credentials" status
16+ ```
17+ - Add preliminary Spanner dialect support (#966 )
18+ - Remove ` StatementBegin ` and ` StatementEnd ` annotations from SQL migration templates
19+ - This is only required for more complex statements that include semicolons within them, such as
20+ stored procedures or functions. For simple statements, these annotations are not needed. See
21+ [ docs] ( https://pressly.github.io/goose/documentation/annotations/#complex-statements ) for more
22+ details.
23+
24+ ## [ v3.26.0] - 2025-10-03
25+
26+ - Add ` *slog.Logger ` support to goose provider via option ` WithSlog ` (#989 )
27+ - Add convenience ` WithTableName ` provider option (#985 )
28+ - Minor bug fixes and dependency upgrades
29+ - Add general purpose ` Locker ` interface to support DB locking with a table-based Postgres
30+ implementation via ` lock.NewPostgresTableLocker ` (#993 for more details)
31+ - Unlike ` SessionLocker ` , this uses the ` *sql.DB ` connection pool
32+ - Add ` WithLocker ` option to goose provider
33+
34+ ## [ v3.25.0] - 2025-08-24
35+
36+ - Upgrade go deps (#976 )
37+ - Remove references/tests for vertica and add deprecation warnings (#978 )
38+ - Add Aurora DSQL as a new database dialect to goose ` Provider ` (#971 )
39+ - Add DDL isolation support for Aurora DSQL compatibility (#970 )
40+ - Update Apply to respect no versioning option (#950 )
41+ - Expose dialect ` Querier ` (#939 )
42+
43+ ## [ v3.24.3]
44+
45+ - Add ` GOOSE_TABLE ` environment variable -- lower priority than ` -table ` flag, but higher than the
46+ default table name. (#932 )
47+ - Dependency updates
48+
49+ ## [ v3.24.2]
50+
51+ - Add ` TableExists ` table existence check for the mysql dialect (#895 )
52+ - Upgrade ** minimum Go version to 1.23**
53+ - Various dependency updates
54+
55+ ## [ v3.24.1]
56+
57+ - Fix regression (` v3.23.1 ` and ` v3.24.0 ` ) in postgres migration table existence check for
58+ non-default schema. (#882 , #883 , #884 ).
59+
60+ ## [ v3.24.0]
61+
62+ - Add support for loading environment variables from ` .env ` files, enabled by default.
63+ - The default file name is ` .env ` , but can be changed with the ` -env=<filename> ` flag.
64+ - To disable this feature, set ` -env=none ` .
65+
66+ ## [ v3.23.1]
67+
68+ - Store implementations can ** optionally** implement the ` TableExists ` method to provide optimized
69+ table existence checks (#860 )
70+ - Default postgres Store implementation updated to use ` pg_tables ` system catalog, more to follow
71+ - Backward compatible change - existing implementations will continue to work without modification
72+
73+ ``` go
74+ TableExists (ctx context.Context , db database.DBTxConn ) (bool , error )
75+ ```
76+
77+ ## [ v3.23.0]
78+
79+ - Add ` WithLogger ` to ` NewProvider ` to allow custom loggers (#833 )
80+ - Update Provider ` WithVerbose ` behavior to log all SQL statements (#851 )
81+ - Upgrade dependencies and rebuild binaries with latest Go version (` go1.23.3 ` )
82+
83+ ## [ v3.22.1]
84+
85+ - Upgrade dependencies and rebuild binaries with latest Go version (` go1.23.1 ` )
86+
87+ ## [ v3.22.0]
88+
89+ - Minimum Go version is now 1.21
90+ - Add Unwrap to PartialError (#815 )
91+ - Allow flags anywhere on the CLI (#814 )
92+
93+ ` goose ` uses the default Go ` flag ` parsing library, which means flags ** must** be defined before the
94+ first positional argument. We've updated this behavior to allow flags to be defined anywhere. For
95+ more details, see [ blog post] ( https://mfridman.com/blog/2024/allowing-flags-anywhere-on-the-cli/ ) .
96+
97+ - Update ` WithDisableGlobalRegistry ` behavior (#783 ). When set, this will ignore globally-registered
98+ migrationse entirely instead of the previous behavior of raising an error. Specifically, the
99+ following check is removed:
100+
101+ ``` go
102+ if len (global) > 0 {
103+ return nil , errors.New (" global registry disabled, but provider has registered go migrations" )
104+ }
105+ ```
106+
107+ This enables creating isolated goose provider(s) in legacy environments where global migrations may
108+ be registered. Without updating this behavior, it would be impossible to use
109+ ` WithDisableGlobalRegistry ` in combination with provider-scoped ` WithGoMigrations ` .
110+
111+ - Postgres, updated schema to use identity instead of serial and make ` tstamp ` not nullable (#556 )
112+
113+ ``` diff
114+ - id serial NOT NULL,
115+ + id integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
116+
117+ - tstamp timestamp NULL default now(),
118+ + tstamp timestamp NOT NULL DEFAULT now()
119+ ```
120+
121+ - MySQL, updated schema to not use SERIAL alias (#816 )
122+
123+ ``` diff
124+ - id serial NOT NULL,
125+ + id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
126+ ```
127+
128+ ## [ v3.21.1]
9129
10130- Add ` GetVersions ` method to ` goose.Provider ` , returns the current (max db) version and the latest
11131 (max filesystem) version. (#756 )
@@ -18,13 +138,9 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
18138 to get the latest version_id irrespective of the order of applied migrations.
19139 - Refactor existing portions of the code to use the new ` GetLatestVersion ` method.
20140
21- - Support [ environ credentials] ( https://github.com/ydb-platform/ydb-go-sdk-auth-environ/?tab=readme-ov-file#auth-environment-variables )
22- for YDB using parameter ` use_env_credentials ` in connection string.
23- Example:
24- ``` bash
25- export YDB_ACCESS_TOKEN_CREDENTIALS=" my-secret-token"
26- goose ydb " grpcs://localhost:2135/local?go_query_mode=scripting&go_fake_tx=scripting&go_query_bind=declare,numeric&use_env_credentials" status
27- ```
141+ ## [ v3.21.0]
142+
143+ - Retracted. Broken release, please use v3.21.1 instead.
28144
29145## [ v3.20.0]
30146
@@ -151,7 +267,7 @@ Here's a quick summary:
151267
152268- Fix ` sqlparser` to avoid skipping the last statement when it' s not terminated with a semicolon
153269 within a StatementBegin/End block. (#580)
154- - Add `go1.21` to the CI matrix.
270+ - Add `** go1.21** ` to the CI matrix.
155271- Bump minimum version of module in go.mod to `go1.19`.
156272- Fix version output when installing pre-built binaries (#585).
157273
@@ -189,7 +305,19 @@ Here's a quick summary:
189305- Add new ` context.Context` - aware functions and methods, for both sql and go migrations.
190306- Return error when no migration files found or dir is not a directory.
191307
192- [Unreleased]: https:// github .com / pressly/ goose/ compare/ v3 .20 .0 ...HEAD
308+ [Unreleased]: https:// github .com / pressly/ goose/ compare/ v3 .26 .0 ...HEAD
309+ [v3 .26 .0 ]: https:// github .com / pressly/ goose/ compare/ v3 .25 .0 ...v3 .26 .0
310+ [v3 .25 .0 ]: https:// github .com / pressly/ goose/ compare/ v3 .24 .3 ...v3 .25 .0
311+ [v3 .24 .3 ]: https:// github .com / pressly/ goose/ compare/ v3 .24 .2 ...v3 .24 .3
312+ [v3 .24 .2 ]: https:// github .com / pressly/ goose/ compare/ v3 .24 .1 ...v3 .24 .2
313+ [v3 .24 .1 ]: https:// github .com / pressly/ goose/ compare/ v3 .24 .0 ...v3 .24 .1
314+ [v3 .24 .0 ]: https:// github .com / pressly/ goose/ compare/ v3 .23 .1 ...v3 .24 .0
315+ [v3 .23 .1 ]: https:// github .com / pressly/ goose/ compare/ v3 .23 .0 ...v3 .23 .1
316+ [v3 .23 .0 ]: https:// github .com / pressly/ goose/ compare/ v3 .22 .1 ...v3 .23 .0
317+ [v3 .22 .1 ]: https:// github .com / pressly/ goose/ compare/ v3 .22 .0 ...v3 .22 .1
318+ [v3 .22 .0 ]: https:// github .com / pressly/ goose/ compare/ v3 .21 .1 ...v3 .22 .0
319+ [v3 .21 .1 ]: https:// github .com / pressly/ goose/ compare/ v3 .20 .0 ...v3 .21 .1
320+ [v3 .21 .0 ]: https:// github .com / pressly/ goose/ compare/ v3 .20 .0 ...v3 .21 .0
193321[v3 .20 .0 ]: https:// github .com / pressly/ goose/ compare/ v3 .19 .2 ...v3 .20 .0
194322[v3 .19 .2 ]: https:// github .com / pressly/ goose/ compare/ v3 .19 .1 ...v3 .19 .2
195323[v3 .19 .1 ]: https:// github .com / pressly/ goose/ compare/ v3 .19 .0 ...v3 .19 .1
0 commit comments