Skip to content

Multiple databases

Give each pool its own type (type ReportsDB struct{ *sql.DB }) or a named token, so the container can tell them apart:

var ReadReplica = dygo.NewToken[*sql.DB]("db.replica")
dygo.Provide(OpenReplica, dygo.For(ReadReplica))
type Params struct {
dygo.In
Primary *DB
Replica *sql.DB `name:"db.replica"`
}

For a database per tenant, use a durable provider keyed by tenant. See “Durable providers” in the HTTP guide.