Documentation
¶
Overview ¶
Package postgres provides Postgres connection and database helpers.
New code should use explicit construction and core-owned SQL operation types:
import "github.com/InsideGallery/core/db/postgres"
db, err := postgres.NewDatabaseFromOptions(postgres.DatabaseOptions{
Host: "localhost",
Database: "app",
})
Prefer Database, DatabaseClient, Statement, DatabaseOptions, and CommandResult when consumer code should not depend directly on sqlx.
Compatibility: NewClient, Set, Get, and Default remain available for existing sqlx-shaped callers. Prefer NewDatabase, NewDatabaseFromOptions, DefaultDatabase, or NewClientStore with explicit lifecycle ownership in new code.
Index ¶
- Constants
- Variables
- func Default() (*sqlx.DB, error)deprecated
- func Get() (*sqlx.DB, error)deprecated
- func NewClient(config *ConnectionConfig) (*sqlx.DB, error)
- func Set(r *sqlx.DB)deprecated
- type ClientStore
- type CommandResult
- type ConnectionConfig
- type Database
- type DatabaseClient
- func (d *DatabaseClient) Close() error
- func (d *DatabaseClient) Exec(ctx context.Context, statement Statement) (CommandResult, error)
- func (d *DatabaseClient) Ping(ctx context.Context) error
- func (d *DatabaseClient) Query(ctx context.Context, statement Statement) (*sql.Rows, error)
- func (d *DatabaseClient) QueryRow(ctx context.Context, statement Statement) *sql.Row
- func (d *DatabaseClient) SQLDB() *sql.DB
- type DatabaseOptions
- type Statement
Constants ¶
const EnvPrefix = "POSTGRES"
EnvPrefix environment prefix for mongodb config
Variables ¶
var ErrConnectionIsNotSet = errors.New("connection is not set")
Functions ¶
Types ¶
type ClientStore ¶ added in v1.1.0
type ClientStore struct {
// contains filtered or unexported fields
}
ClientStore owns a Postgres sqlx client for explicit application composition.
func NewClientStore ¶ added in v1.1.0
func NewClientStore(client *sqlx.DB) *ClientStore
NewClientStore creates a Postgres client store with an optional existing client.
func (*ClientStore) Close ¶ added in v1.1.0
func (s *ClientStore) Close() error
Close closes the stored Postgres client and clears this store.
func (*ClientStore) Get ¶ added in v1.1.0
func (s *ClientStore) Get() (*sqlx.DB, error)
Get returns the Postgres client from this store.
func (*ClientStore) GetOrCreate ¶ added in v1.1.0
func (s *ClientStore) GetOrCreate(config *ConnectionConfig) (*sqlx.DB, error)
GetOrCreate returns or creates a Postgres client from explicit config.
func (*ClientStore) Set ¶ added in v1.1.0
func (s *ClientStore) Set(client *sqlx.DB)
Set stores a Postgres client in this store.
type CommandResult ¶ added in v1.1.0
type CommandResult struct {
RowsAffected int64
}
CommandResult is the core-owned result for SQL commands.
type ConnectionConfig ¶
type ConnectionConfig struct {
Host string `env:"_HOST" envDefault:"localhost"`
Port string `env:"_PORT" envDefault:"5432"`
User string `env:"_USER" envDefault:"default"`
Password string `env:"_PASSWORD" envDefault:"default"`
DB string `env:"_DB" envDefault:"default"`
ApplicationName string `env:"_APPLICATIONNAME" envDefault:""`
MaxOpenConns int `env:"_MAXOPENCONNS" envDefault:"500"`
ConnMaxLifetime int64 `env:"_CONNMAXLIFETIME" envDefault:"-1"`
}
ConnectionConfig contains required data for gremlin
func GetConnectionConfigFromEnv ¶
func GetConnectionConfigFromEnv() (*ConnectionConfig, error)
GetConnectionConfigFromEnv return aerospike configs bases on environment variables
func (*ConnectionConfig) GetDSN ¶
func (c *ConnectionConfig) GetDSN() string
type Database ¶ added in v1.1.0
type Database interface {
Ping(ctx context.Context) error
Exec(ctx context.Context, statement Statement) (CommandResult, error)
Query(ctx context.Context, statement Statement) (*sql.Rows, error)
QueryRow(ctx context.Context, statement Statement) *sql.Row
Close() error
}
Database is the core-owned Postgres contract for new consumers.
type DatabaseClient ¶ added in v1.1.0
type DatabaseClient struct {
// contains filtered or unexported fields
}
DatabaseClient wraps sqlx behind core-owned operation inputs and results.
func DefaultDatabase ¶ added in v1.1.0
func DefaultDatabase() (*DatabaseClient, error)
DefaultDatabase returns the default Postgres client behind the core-owned DatabaseClient API.
func NewDatabase ¶ added in v1.1.0
func NewDatabase(config *ConnectionConfig) (*DatabaseClient, error)
NewDatabase creates a Postgres database client from core-owned config.
func NewDatabaseFromOptions ¶ added in v1.1.0
func NewDatabaseFromOptions(options DatabaseOptions) (*DatabaseClient, error)
NewDatabaseFromOptions creates a Postgres database client from core-owned construction options.
func WrapDatabase ¶ added in v1.1.0
func WrapDatabase(db *sqlx.DB) *DatabaseClient
WrapDatabase adapts an existing sqlx DB to DatabaseClient.
func (*DatabaseClient) Close ¶ added in v1.1.0
func (d *DatabaseClient) Close() error
Close closes the database client.
func (*DatabaseClient) Exec ¶ added in v1.1.0
func (d *DatabaseClient) Exec(ctx context.Context, statement Statement) (CommandResult, error)
Exec runs a command with core-owned options.
func (*DatabaseClient) Ping ¶ added in v1.1.0
func (d *DatabaseClient) Ping(ctx context.Context) error
Ping verifies connectivity.
func (*DatabaseClient) QueryRow ¶ added in v1.1.0
QueryRow runs a single-row query with core-owned options.
func (*DatabaseClient) SQLDB ¶ added in v1.1.0
func (d *DatabaseClient) SQLDB() *sql.DB
SQLDB returns the standard-library database handle.