database

package
v0.0.0-...-8fb0787 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2023 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DB

type DB struct {
	Pool *pgxpool.Pool
}

DB represents database

func NewPool

func NewPool(ctx context.Context, connString string, ps *Database) (*DB, error)

NewPool create new connection using pool

func (*DB) Close

func (db *DB) Close(_ context.Context)

Close pool connections

func (*DB) InTx

func (db *DB) InTx(ctx context.Context, isoLevel pgx.TxIsoLevel, in func(tx pgx.Tx) error) error

InTx runs within a transaction with the isolation level.

type Database

type Database struct {
	Driver            string        `envconfig:"DB_DRIVER" default:"postgres"`
	Host              string        `envconfig:"DB_HOST" default:"0.0.0.0"`
	Port              string        `envconfig:"DB_PORT" default:"5432"`
	User              string        `envconfig:"DB_USER" default:"postgres"`
	Password          string        `envconfig:"DB_PASS" default:"postgres"`
	DBName            string        `envconfig:"DB_NAME" default:"postgres"`
	SSLMode           string        `envconfig:"DB_SSLMODE" default:"disable"` // mode should be either require or disable
	ConnQuantityMin   int32         `envconfig:"DB_POOL_MIN_CONNS" default:"10"`
	ConnQuantityMax   int32         `envconfig:"DB_POOL_MAX_CONNS" default:"50"`
	ConnTimeLifetime  time.Duration `envconfig:"DB_POOL_MAX_CONN_LIFETIME" default:"5m"`
	ConnTimeIdleMax   time.Duration `envconfig:"DB_POOL_MAX_CONN_IDLE_TIME" default:"1m"`
	HealthCheckPeriod time.Duration `envconfig:"DB_POOL_HEALTH_CHECK_PERIOD" default:"1m"`
}

Database contains dsn and pool settings for postgres

func (*Database) DatabaseConfig

func (c *Database) DatabaseConfig() *Database

DatabaseConfig implements setup.DatabaseConfigProvider

func (*Database) GetDSN

func (c *Database) GetDSN() string

GetDSN for postgres database

type TestDBInstance

type TestDBInstance struct {
	// contains filtered or unexported fields
}

TestDBInstance is a wrapper around the Docker-based database instance.

func MustNewTestInstance

func MustNewTestInstance() *TestDBInstance

func NewTestInstance

func NewTestInstance() (*TestDBInstance, error)

func (*TestDBInstance) Close

func (i *TestDBInstance) Close() (retErr error)

Close terminate and clean resources.

func (*TestDBInstance) MustClose

func (i *TestDBInstance) MustClose() error

func (*TestDBInstance) NewDatabase

func (i *TestDBInstance) NewDatabase(tb testing.TB) (*DB, *Database)

NewDatabase creates a new db for tests

Jump to

Keyboard shortcuts

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