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 ¶
const (
// DefaultBusyTimeout is the default busy timeout in milliseconds.
DefaultBusyTimeout = 10000
)
Variables ¶
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.
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" )