Skip to content

Commit 89e308c

Browse files
authored
chore: remove dependency on "hashicorp/go-multierror" (#1322)
* feat: remove dependency on "hashicorp/go-multierror" It seems the project has been unmainted for quite some time already, see for example hashicorp/go-multierror#97 and hashicorp/go-multierror#98. This also removes an uneccessary dependency which slims down the go.mod. Go as of version 1.20 supports appending errors by specifying multiple "%w" formatters in the "fmt.Errorf"[^0] function. [^0]: https://pkg.go.dev/fmt#Errorf * feat: use errors.Join to combine multiple errors As an update to the previous commit 59f084e, use "errors.Join"[^0] instead of multiple "%w" formatters for "fmt.Errorf". [^0]: https://pkg.go.dev/errors#Join * chore: bring back unused util.go file as removing it is a breaking change
1 parent 472ef2e commit 89e308c

File tree

25 files changed

+89
-177
lines changed

25 files changed

+89
-177
lines changed

database/cassandra/cassandra.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
"github.com/gocql/gocql"
1414
"github.com/golang-migrate/migrate/v4/database"
1515
"github.com/golang-migrate/migrate/v4/database/multistmt"
16-
"github.com/hashicorp/go-multierror"
1716
)
1817

1918
func init() {
@@ -315,11 +314,7 @@ func (c *Cassandra) ensureVersionTable() (err error) {
315314

316315
defer func() {
317316
if e := c.Unlock(); e != nil {
318-
if err == nil {
319-
err = e
320-
} else {
321-
err = multierror.Append(err, e)
322-
}
317+
err = errors.Join(err, e)
323318
}
324319
}()
325320

database/clickhouse/clickhouse.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package clickhouse
22

33
import (
44
"database/sql"
5+
"errors"
56
"fmt"
67
"io"
78
"net/url"
@@ -13,7 +14,6 @@ import (
1314
"github.com/golang-migrate/migrate/v4"
1415
"github.com/golang-migrate/migrate/v4/database"
1516
"github.com/golang-migrate/migrate/v4/database/multistmt"
16-
"github.com/hashicorp/go-multierror"
1717
)
1818

1919
var (
@@ -209,11 +209,7 @@ func (ch *ClickHouse) ensureVersionTable() (err error) {
209209

210210
defer func() {
211211
if e := ch.Unlock(); e != nil {
212-
if err == nil {
213-
err = e
214-
} else {
215-
err = multierror.Append(err, e)
216-
}
212+
err = errors.Join(err, e)
217213
}
218214
}()
219215

@@ -266,7 +262,7 @@ func (ch *ClickHouse) Drop() (err error) {
266262
}
267263
defer func() {
268264
if errClose := tables.Close(); errClose != nil {
269-
err = multierror.Append(err, errClose)
265+
err = errors.Join(err, errClose)
270266
}
271267
}()
272268

database/cockroachdb/cockroachdb.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cockroachdb
33
import (
44
"context"
55
"database/sql"
6+
"errors"
67
"fmt"
78
"io"
89
nurl "net/url"
@@ -13,7 +14,6 @@ import (
1314
"github.com/cockroachdb/cockroach-go/v2/crdb"
1415
"github.com/golang-migrate/migrate/v4"
1516
"github.com/golang-migrate/migrate/v4/database"
16-
"github.com/hashicorp/go-multierror"
1717
"github.com/lib/pq"
1818
)
1919

@@ -161,7 +161,7 @@ func (c *CockroachDb) Lock() error {
161161
}
162162
defer func() {
163163
if errClose := rows.Close(); errClose != nil {
164-
err = multierror.Append(err, errClose)
164+
err = errors.Join(err, errClose)
165165
}
166166
}()
167167

@@ -276,7 +276,7 @@ func (c *CockroachDb) Drop() (err error) {
276276
}
277277
defer func() {
278278
if errClose := tables.Close(); errClose != nil {
279-
err = multierror.Append(err, errClose)
279+
err = errors.Join(err, errClose)
280280
}
281281
}()
282282

@@ -318,11 +318,7 @@ func (c *CockroachDb) ensureVersionTable() (err error) {
318318

319319
defer func() {
320320
if e := c.Unlock(); e != nil {
321-
if err == nil {
322-
err = e
323-
} else {
324-
err = multierror.Append(err, e)
325-
}
321+
err = errors.Join(err, e)
326322
}
327323
}()
328324

database/firebird/firebird.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ package firebird
55
import (
66
"context"
77
"database/sql"
8+
"errors"
89
"fmt"
910
"io"
1011
nurl "net/url"
1112
"sync/atomic"
1213

1314
"github.com/golang-migrate/migrate/v4"
1415
"github.com/golang-migrate/migrate/v4/database"
15-
"github.com/hashicorp/go-multierror"
1616
_ "github.com/nakagami/firebirdsql"
1717
)
1818

@@ -180,7 +180,7 @@ func (f *Firebird) Drop() (err error) {
180180
}
181181
defer func() {
182182
if errClose := tables.Close(); errClose != nil {
183-
err = multierror.Append(err, errClose)
183+
err = errors.Join(err, errClose)
184184
}
185185
}()
186186

@@ -223,11 +223,7 @@ func (f *Firebird) ensureVersionTable() (err error) {
223223

224224
defer func() {
225225
if e := f.Unlock(); e != nil {
226-
if err == nil {
227-
err = e
228-
} else {
229-
err = multierror.Append(err, e)
230-
}
226+
err = errors.Join(err, e)
231227
}
232228
}()
233229

database/mongodb/mongodb.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package mongodb
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"io"
78
"net/url"
@@ -12,7 +13,6 @@ import (
1213

1314
"github.com/cenkalti/backoff/v4"
1415
"github.com/golang-migrate/migrate/v4/database"
15-
"github.com/hashicorp/go-multierror"
1616
"go.mongodb.org/mongo-driver/bson"
1717
"go.mongodb.org/mongo-driver/mongo"
1818
"go.mongodb.org/mongo-driver/mongo/options"
@@ -325,11 +325,7 @@ func (m *Mongo) ensureVersionTable() (err error) {
325325

326326
defer func() {
327327
if e := m.Unlock(); e != nil {
328-
if err == nil {
329-
err = e
330-
} else {
331-
err = multierror.Append(err, e)
332-
}
328+
err = errors.Join(err, e)
333329
}
334330
}()
335331

database/mysql/mysql.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"crypto/tls"
88
"crypto/x509"
99
"database/sql"
10+
"errors"
1011
"fmt"
1112
"io"
1213
nurl "net/url"
@@ -18,7 +19,6 @@ import (
1819

1920
"github.com/go-sql-driver/mysql"
2021
"github.com/golang-migrate/migrate/v4/database"
21-
"github.com/hashicorp/go-multierror"
2222
)
2323

2424
var _ database.Driver = (*Mysql)(nil) // explicit compile time type check
@@ -362,7 +362,7 @@ func (m *Mysql) SetVersion(version int, dirty bool) error {
362362
query := "DELETE FROM `" + m.config.MigrationsTable + "` LIMIT 1"
363363
if _, err := tx.ExecContext(context.Background(), query); err != nil {
364364
if errRollback := tx.Rollback(); errRollback != nil {
365-
err = multierror.Append(err, errRollback)
365+
err = errors.Join(err, errRollback)
366366
}
367367
return &database.Error{OrigErr: err, Query: []byte(query)}
368368
}
@@ -374,7 +374,7 @@ func (m *Mysql) SetVersion(version int, dirty bool) error {
374374
query := "INSERT INTO `" + m.config.MigrationsTable + "` (version, dirty) VALUES (?, ?)"
375375
if _, err := tx.ExecContext(context.Background(), query, version, dirty); err != nil {
376376
if errRollback := tx.Rollback(); errRollback != nil {
377-
err = multierror.Append(err, errRollback)
377+
err = errors.Join(err, errRollback)
378378
}
379379
return &database.Error{OrigErr: err, Query: []byte(query)}
380380
}
@@ -416,7 +416,7 @@ func (m *Mysql) Drop() (err error) {
416416
}
417417
defer func() {
418418
if errClose := tables.Close(); errClose != nil {
419-
err = multierror.Append(err, errClose)
419+
err = errors.Join(err, errClose)
420420
}
421421
}()
422422

@@ -469,11 +469,7 @@ func (m *Mysql) ensureVersionTable() (err error) {
469469

470470
defer func() {
471471
if e := m.Unlock(); e != nil {
472-
if err == nil {
473-
err = e
474-
} else {
475-
err = multierror.Append(err, e)
476-
}
472+
err = errors.Join(err, e)
477473
}
478474
}()
479475

database/neo4j/neo4j.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package neo4j
22

33
import (
44
"bytes"
5+
"errors"
56
"fmt"
67
"io"
78
neturl "net/url"
@@ -10,7 +11,6 @@ import (
1011

1112
"github.com/golang-migrate/migrate/v4/database"
1213
"github.com/golang-migrate/migrate/v4/database/multistmt"
13-
"github.com/hashicorp/go-multierror"
1414
"github.com/neo4j/neo4j-go-driver/neo4j"
1515
)
1616

@@ -141,7 +141,7 @@ func (n *Neo4j) Run(migration io.Reader) (err error) {
141141
}
142142
defer func() {
143143
if cerr := session.Close(); cerr != nil {
144-
err = multierror.Append(err, cerr)
144+
err = errors.Join(err, cerr)
145145
}
146146
}()
147147

@@ -188,7 +188,7 @@ func (n *Neo4j) SetVersion(version int, dirty bool) (err error) {
188188
}
189189
defer func() {
190190
if cerr := session.Close(); cerr != nil {
191-
err = multierror.Append(err, cerr)
191+
err = errors.Join(err, cerr)
192192
}
193193
}()
194194

@@ -213,7 +213,7 @@ func (n *Neo4j) Version() (version int, dirty bool, err error) {
213213
}
214214
defer func() {
215215
if cerr := session.Close(); cerr != nil {
216-
err = multierror.Append(err, cerr)
216+
err = errors.Join(err, cerr)
217217
}
218218
}()
219219

@@ -261,7 +261,7 @@ func (n *Neo4j) Drop() (err error) {
261261
}
262262
defer func() {
263263
if cerr := session.Close(); cerr != nil {
264-
err = multierror.Append(err, cerr)
264+
err = errors.Join(err, cerr)
265265
}
266266
}()
267267

@@ -278,7 +278,7 @@ func (n *Neo4j) ensureVersionConstraint() (err error) {
278278
}
279279
defer func() {
280280
if cerr := session.Close(); cerr != nil {
281-
err = multierror.Append(err, cerr)
281+
err = errors.Join(err, cerr)
282282
}
283283
}()
284284

database/pgx/pgx.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package pgx
55
import (
66
"context"
77
"database/sql"
8+
"errors"
89
"fmt"
910
"io"
1011
nurl "net/url"
@@ -17,7 +18,6 @@ import (
1718
"github.com/golang-migrate/migrate/v4"
1819
"github.com/golang-migrate/migrate/v4/database"
1920
"github.com/golang-migrate/migrate/v4/database/multistmt"
20-
"github.com/hashicorp/go-multierror"
2121
"github.com/jackc/pgconn"
2222
"github.com/jackc/pgerrcode"
2323
_ "github.com/jackc/pgx/v4/stdlib"
@@ -295,7 +295,7 @@ func (p *Postgres) applyTableLock() error {
295295
defer func() {
296296
errRollback := tx.Rollback()
297297
if errRollback != nil {
298-
err = multierror.Append(err, errRollback)
298+
err = errors.Join(err, errRollback)
299299
}
300300
}()
301301

@@ -312,7 +312,7 @@ func (p *Postgres) applyTableLock() error {
312312

313313
defer func() {
314314
if errClose := rows.Close(); errClose != nil {
315-
err = multierror.Append(err, errClose)
315+
err = errors.Join(err, errClose)
316316
}
317317
}()
318318

@@ -454,7 +454,7 @@ func (p *Postgres) SetVersion(version int, dirty bool) error {
454454
query := `TRUNCATE ` + quoteIdentifier(p.config.migrationsSchemaName) + `.` + quoteIdentifier(p.config.migrationsTableName)
455455
if _, err := tx.Exec(query); err != nil {
456456
if errRollback := tx.Rollback(); errRollback != nil {
457-
err = multierror.Append(err, errRollback)
457+
err = errors.Join(err, errRollback)
458458
}
459459
return &database.Error{OrigErr: err, Query: []byte(query)}
460460
}
@@ -466,7 +466,7 @@ func (p *Postgres) SetVersion(version int, dirty bool) error {
466466
query = `INSERT INTO ` + quoteIdentifier(p.config.migrationsSchemaName) + `.` + quoteIdentifier(p.config.migrationsTableName) + ` (version, dirty) VALUES ($1, $2)`
467467
if _, err := tx.Exec(query, version, dirty); err != nil {
468468
if errRollback := tx.Rollback(); errRollback != nil {
469-
err = multierror.Append(err, errRollback)
469+
err = errors.Join(err, errRollback)
470470
}
471471
return &database.Error{OrigErr: err, Query: []byte(query)}
472472
}
@@ -508,7 +508,7 @@ func (p *Postgres) Drop() (err error) {
508508
}
509509
defer func() {
510510
if errClose := tables.Close(); errClose != nil {
511-
err = multierror.Append(err, errClose)
511+
err = errors.Join(err, errClose)
512512
}
513513
}()
514514

@@ -556,11 +556,7 @@ func (p *Postgres) ensureVersionTable() (err error) {
556556

557557
defer func() {
558558
if e := p.Unlock(); e != nil {
559-
if err == nil {
560-
err = e
561-
} else {
562-
err = multierror.Append(err, e)
563-
}
559+
err = errors.Join(err, e)
564560
}
565561
}()
566562

0 commit comments

Comments
 (0)