Vault
1.x
Docs/Vault/SQLite Store
Open

Reading1 min
Updated31 Jul 2026
Sourcev1/stores/sqlite.mdx

The SQLite store (store/sqlite) provides a lightweight, embedded backend using the Grove ORM with sqlitedriver. It implements the full store.Store composite interface and is well-suited for single-process deployments, local development, and testing.

Usage01

import (
    "github.com/xraph/grove"
    "github.com/xraph/grove/drivers/sqlitedriver"
    "github.com/xraph/vault/store/sqlite"
)

// Open a SQLite connection via Grove's sqlitedriver.
db := grove.Open(sqlitedriver.New("vault.db"))

s := sqlite.New(db)
if err := s.Migrate(ctx); err != nil {
    log.Fatal(err)
}

Options02

OptionSignatureDescription
WithLoggerWithLogger(l *slog.Logger) StoreOptionSets the structured logger. Defaults to slog.Default().
s := sqlite.New(db, sqlite.WithLogger(slog.Default()))

Internals03

AspectDetail
DriverGrove ORM with sqlitedriver (SQLite)
MigrationsGrove migration orchestrator with programmatic migrations
TransactionsDatabase-level transactions via SQLite

Lifecycle methods04

MethodBehaviour
Migrate(ctx)Creates all tables and indexes using the Grove migration orchestrator
Ping(ctx)Calls db.Ping(ctx) to verify connectivity
Close()Calls db.Close() to release the database connection

When to use05

  • Local development -- single-file database, no server process required.

  • Testing -- fast, isolated store with no external dependencies.

  • Embedded / single-process -- CLI tools, desktop apps, or edge deployments.

  • CI pipelines -- deterministic tests without a database container.