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 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
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