stdpgxfx

package
v0.0.148 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2025 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package stdpgxfx provides sql.DB connection pools usng pgx/v5.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Provide

func Provide[DBT any](drv Driver[DBT], mainPoolName string, derivedPoolNames ...string) fx.Option

Provide components as fx dependencies.

func ProvideDeriver added in v0.0.13

func ProvideDeriver(name string, deriver Deriver) fx.Option

ProvideDeriver is a short-hande function for providing a named deriver function that.

func TestProvide

func TestProvide[DBT any](
	tb testing.TB, mig pgtestdb.Migrator, drv Driver[DBT], mainPoolName string, derivedPoolNames ...string,
) fx.Option

TestProvide provides the package's components as an fx module with a setup more useful for testing.

Types

type Config

type Config struct {
	// MainDatabaseURL configures the database connection string for the main connection.
	MainDatabaseURL string `env:"MAIN_DATABASE_URL,required"`
	// IamAuthRegion when set cause the password to be replaced by an IAM token for authentication.
	IamAuthRegion string `env:"IAM_AUTH_REGION"`
}

Config configures the module.

type Deriver added in v0.0.13

type Deriver func(logs *zap.Logger, base *pgxpool.Config) *pgxpool.Config

Deriver needs to be provided by the user of this module if derived pools are created.

type Driver added in v0.0.117

type Driver[DBT any] interface {
	NewPool(pcfg *pgxpool.Config) (DBT, error)
	Close(pool DBT) error
}

Driver abstracts turning a pgxpool config into connection pool and closing it.

func NewPgxV5Driver added in v0.0.117

func NewPgxV5Driver() Driver[*pgxpool.Pool]

NewPgxV5Driver inits a driver that uses the pgx v5 pooling.

func NewStandardDriver added in v0.0.117

func NewStandardDriver() Driver[*sql.DB]

NewStandardDriver inits a driver that uses the standard lib sql.DB as a pool.

type EndRole added in v0.0.120

type EndRole struct {
	Username string
	Password string
}

EndRole defines a type that can be provided if the role that actually connects to the database in tests is different from the migration role.

type Params

type Params struct {
	fx.In
	Config    Config
	AwsConfig aws.Config `optional:"true"`
	Logs      *zap.Logger
}

Params describe the main parameters for providing components.

type PgtestdbTestMigratorParams added in v0.0.58

type PgtestdbTestMigratorParams struct {
	fx.In
	Migrator pgtestdb.Migrator
	Role     *pgtestdb.Role `optional:"true"`
	EndRole  *EndRole       `optional:"true"`
}

type Result

type Result struct {
	fx.Out
	PoolConfig *pgxpool.Config
}

Result describe the main components provided for this module.

func New

func New(params Params) (r Result, err error)

New is the main constructor. In this package it only provides the pool configuration used through out the package.

type TestMigrator added in v0.0.58

type TestMigrator interface {
	Migrate(
		tb testing.TB,
		cfg Config,
		pcfg *pgxpool.Config,
	) (*pgxpool.Config, error)
}

TestMigrator can be implemented and provided to migrate the database for tests.

func NewPgtestdbTestMigrator added in v0.0.58

func NewPgtestdbTestMigrator(params PgtestdbTestMigratorParams) TestMigrator

NewPgtestdbTestMigrator implements the TestMigrator using the pgtestdb library.

type TestMigratorFunc added in v0.0.58

type TestMigratorFunc func(
	tb testing.TB,
	cfg Config,
	pcfg *pgxpool.Config,
) (*pgxpool.Config, error)

TestMigratorFunc makes it easy to implement the migrator.

func (TestMigratorFunc) Migrate added in v0.0.58

func (f TestMigratorFunc) Migrate(
	tb testing.TB, cfg Config, pcfg *pgxpool.Config,
) (*pgxpool.Config, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL