Files
leonklingeleandGitHub 89e308c340 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 https://github.com/hashicorp/go-multierror/issues/97
and https://github.com/hashicorp/go-multierror/issues/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 59f084ea3be2e7ec9d912c1a311402b1e4c40df6,
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
2025-11-29 11:37:42 -08:00
..

MongoDB

  • Driver work with mongo through db.runCommands
  • Migrations support json format. It contains array of commands for db.runCommand. Every command is executed in separate request to database
  • All keys have to be in quotes "
  • Examples

Usage

mongodb://user:password@host:port/dbname?query (mongodb+srv:// also works, but behaves a bit differently. See docs for more information)

URL Query WithInstance Config Description
x-migrations-collection MigrationsCollection Name of the migrations collection
x-transaction-mode TransactionMode If set to true wrap commands in transaction. Available only for replica set. Driver is using strconv.ParseBool for parsing
x-advisory-locking true Feature flag for advisory locking, if set to false, disable advisory locking
x-advisory-lock-collection migrate_advisory_lock The name of the collection to use for advisory locking.
x-advisory-lock-timeout 15 The max time in seconds that migrate will wait to acquire a lock before failing.
x-advisory-lock-timeout-interval 10 The max time in seconds between attempts to acquire the advisory lock, the lock is attempted to be acquired using an exponential backoff algorithm.
dbname DatabaseName The name of the database to connect to
user The user to sign in as. Can be omitted
password The user's password. Can be omitted
host The host to connect to
port The port to bind to