sqliteconfig

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package sqliteconfig provides type-safe configuration for SQLite databases with proper enum validation and URL generation for modernc.org/sqlite driver.

Index

Constants

View Source
const (
	// DefaultBusyTimeout is the default busy timeout in milliseconds.
	DefaultBusyTimeout = 10000
)

Variables

View Source
var (
	ErrPathEmpty           = errors.New("path cannot be empty")
	ErrBusyTimeoutNegative = errors.New("busy_timeout must be >= 0")
	ErrInvalidJournalMode  = errors.New("invalid journal_mode")
	ErrInvalidAutoVacuum   = errors.New("invalid auto_vacuum")
	ErrWALAutocheckpoint   = errors.New("wal_autocheckpoint must be >= -1")
	ErrInvalidSynchronous  = errors.New("invalid synchronous")
	ErrInvalidTxLock       = errors.New("invalid txlock")
)

Errors returned by config validation.

Functions

This section is empty.

Types

type AutoVacuum

type AutoVacuum string

AutoVacuum represents SQLite auto_vacuum pragma values.

const (
	// AutoVacuumNone disables automatic space reclamation.
	AutoVacuumNone AutoVacuum = "NONE"
	// AutoVacuumFull immediately reclaims space on every DELETE/DROP.
	AutoVacuumFull AutoVacuum = "FULL"
	// AutoVacuumIncremental reclaims space gradually (RECOMMENDED for production).
	AutoVacuumIncremental AutoVacuum = "INCREMENTAL"
)

func (AutoVacuum) IsValid

func (a AutoVacuum) IsValid() bool

IsValid returns true if the AutoVacuum is valid.

func (AutoVacuum) String

func (a AutoVacuum) String() string

String returns the string representation.

type Config

type Config struct {
	Path              string      // file path or ":memory:"
	BusyTimeout       int         // milliseconds (0 = default/disabled)
	JournalMode       JournalMode // journal mode (affects concurrency and crash recovery)
	AutoVacuum        AutoVacuum  // auto vacuum mode (affects storage efficiency)
	WALAutocheckpoint int         // pages (-1 = default/not set, 0 = disabled, >0 = enabled)
	Synchronous       Synchronous // synchronous mode (affects durability vs performance)
	ForeignKeys       bool        // enable foreign key constraints (data integrity)
	TxLock            TxLock      // transaction lock mode (affects write concurrency)
}

Config holds SQLite database configuration with type-safe enums.

func Default

func Default(path string) *Config

Default returns the production configuration optimized for most usage patterns.

func Memory

func Memory() *Config

Memory returns a configuration for in-memory databases.

func (*Config) ToURL

func (c *Config) ToURL() (string, error)

ToURL builds a properly encoded SQLite connection string using _pragma parameters.

func (*Config) Validate

func (c *Config) Validate() error

Validate checks if all configuration values are valid.

type JournalMode

type JournalMode string

JournalMode represents SQLite journal_mode pragma values.

const (
	// JournalModeWAL enables Write-Ahead Logging (RECOMMENDED for production).
	JournalModeWAL JournalMode = "WAL"
	// JournalModeDelete uses traditional rollback journaling.
	JournalModeDelete JournalMode = "DELETE"
	// JournalModeTruncate is like DELETE but with faster cleanup.
	JournalModeTruncate JournalMode = "TRUNCATE"
	// JournalModePersist keeps journal file between transactions.
	JournalModePersist JournalMode = "PERSIST"
	// JournalModeMemory keeps journal in memory (DANGEROUS).
	JournalModeMemory JournalMode = "MEMORY"
	// JournalModeOff disables journaling entirely (EXTREMELY DANGEROUS).
	JournalModeOff JournalMode = "OFF"
)

func (JournalMode) IsValid

func (j JournalMode) IsValid() bool

IsValid returns true if the JournalMode is valid.

func (JournalMode) String

func (j JournalMode) String() string

String returns the string representation.

type Synchronous

type Synchronous string

Synchronous represents SQLite synchronous pragma values.

const (
	// SynchronousOff disables syncing (DANGEROUS).
	SynchronousOff Synchronous = "OFF"
	// SynchronousNormal provides balanced performance and safety (RECOMMENDED).
	SynchronousNormal Synchronous = "NORMAL"
	// SynchronousFull provides maximum durability with performance cost.
	SynchronousFull Synchronous = "FULL"
	// SynchronousExtra provides paranoid-level data safety (EXTREME).
	SynchronousExtra Synchronous = "EXTRA"
)

func (Synchronous) IsValid

func (s Synchronous) IsValid() bool

IsValid returns true if the Synchronous is valid.

func (Synchronous) String

func (s Synchronous) String() string

String returns the string representation.

type TxLock

type TxLock string

TxLock represents SQLite transaction lock mode.

const (
	// TxLockDeferred acquires locks lazily (SQLite default).
	TxLockDeferred TxLock = "deferred"
	// TxLockImmediate acquires write lock immediately (RECOMMENDED for production).
	TxLockImmediate TxLock = "immediate"
	// TxLockExclusive acquires exclusive lock immediately.
	TxLockExclusive TxLock = "exclusive"
)

func (TxLock) IsValid

func (t TxLock) IsValid() bool

IsValid returns true if the TxLock is valid.

func (TxLock) String

func (t TxLock) String() string

String returns the string representation.

Jump to

Keyboard shortcuts

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