Documentation ¶
Overview ¶
Package database is a facade over the data storage layer.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrNotFound indicates that the requested record was not found in the database. ErrNotFound = errors.New("record not found") // ErrKeyConflict indicates that there was a key conflict inserting a row. ErrKeyConflict = errors.New("key conflict") )
View Source
var ( // ErrAlreadyLocked is returned if the lock is already in use. ErrAlreadyLocked = errors.New("lock already in use") )
Functions ¶
func NewTestDatabaseWithConfig ¶
NewTestDatabaseWithConfig creates a new database suitable for use in testing. This should not be used outside of testing, but it is exposed in the main package so it can be shared with other packages.
All database tests can be skipped by running `go test -short` or by setting the `SKIP_DATABASE_TESTS` environment variable.
Types ¶
type Config ¶
type Config struct { Secrets secrets.Config Name string `env:"DB_NAME" json:",omitempty"` User string `env:"DB_USER" json:",omitempty"` Host string `env:"DB_HOST, default=localhost" json:",omitempty"` Port string `env:"DB_PORT, default=5432" json:",omitempty"` SSLMode string `env:"DB_SSLMODE, default=require" json:",omitempty"` ConnectionTimeout int `env:"DB_CONNECT_TIMEOUT" json:",omitempty"` Password string `env:"DB_PASSWORD" json:"-"` // ignored by zap's JSON formatter SSLCertPath string `env:"DB_SSLCERT" json:",omitempty"` SSLKeyPath string `env:"DB_SSLKEY" json:",omitempty"` SSLRootCertPath string `env:"DB_SSLROOTCERT" json:",omitempty"` PoolMinConnections string `env:"DB_POOL_MIN_CONNS" json:",omitempty"` PoolMaxConnections string `env:"DB_POOL_MAX_CONNS" json:",omitempty"` PoolMaxConnLife time.Duration `env:"DB_POOL_MAX_CONN_LIFETIME, default=5m" json:",omitempty"` PoolMaxConnIdle time.Duration `env:"DB_POOL_MAX_CONN_IDLE_TIME, default=1m" json:",omitempty"` PoolHealthCheck time.Duration `env:"DB_POOL_HEALTH_CHECK_PERIOD, default=1m" json:",omitempty"` }
func (*Config) ConnectionURL ¶ added in v0.7.0
func (*Config) DatabaseConfig ¶
func (*Config) SecretManagerConfig ¶ added in v0.7.0
type DB ¶
func NewFromEnv ¶
NewFromEnv sets up the database connections using the configuration in the process's environment variables. This should be called just once per server instance.
func NewTestDatabase ¶
func (*DB) InTx ¶
InTx runs the given function f within a transaction with isolation level isoLevel.
Click to show internal directories.
Click to hide internal directories.