database

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package database provides database connectivity and operations for PostgreSQL and SQLite. It wraps the standard database/sql package with additional functionality specific to migration management, including retry logic, transaction handling, and migration table management.

The package supports both pgx driver for PostgreSQL and modernc.org/sqlite for SQLite, providing abstractions for database operations that are safe for concurrent use.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DB

type DB interface {
	Close() error
	Ping(context.Context) error
	PingWithRetry(context.Context, int, int) error // Only used by ping command
	Exec(context.Context, *sqlf.Query) error
	QueryRow(context.Context, *sqlf.Query) *sql.Row
	Query(context.Context, *sqlf.Query) (*sql.Rows, error)
	Driver() dbdriver.DatabaseDriver

	WithTransact(ctx context.Context, f func(Tx) error) error
}

func New added in v0.0.5

func New(drv dbdriver.DatabaseDriver, url string, logger loggr.Logger) (DB, error)

New returns a new instance of the database with default configuration

func NewWithConfig added in v0.2.0

func NewWithConfig(dd dbdriver.DatabaseDriver, url string, logger loggr.Logger, config DBConfig) (DB, error)

NewWithConfig returns a new database instance with custom configuration

func NewWithDB added in v0.0.6

func NewWithDB(db *sql.DB, driver dbdriver.DatabaseDriver, logger loggr.Logger) (DB, error)

type DBConfig added in v0.2.0

type DBConfig struct {
	// Connection settings
	ConnectTimeout   time.Duration // Timeout for establishing connections
	StatementTimeout time.Duration // Timeout for individual SQL statements

	// Connection pool settings
	MaxOpenConns    int           // Maximum number of open connections
	MaxIdleConns    int           // Maximum number of idle connections
	ConnMaxLifetime time.Duration // Maximum connection lifetime

	// Default timeouts for operations
	DefaultTimeout time.Duration // Default timeout for operations without explicit context deadline
}

DBConfig holds database connection configuration options

func DefaultDBConfig added in v0.2.0

func DefaultDBConfig(drv dbdriver.DatabaseDriver) DBConfig

DefaultDBConfig returns sensible default configuration for Kat migrations These defaults prioritize backward compatibility while providing basic protection

type Scanner

type Scanner interface {
	Scan(dest ...any) error
}

type Tx

type Tx interface {
	DB

	Commit() error
	Rollback() error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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