sqlitex helpers
sqlitex is a pure-Go quality-of-life layer over database/sql (no lib coupling), named after the zombiezen/crawshaw sqlitex lineage.
Save— deferred savepoints:release, _ := sqlitex.Save(ctx, conn); defer release(&err)commits on nil error, rolls back otherwise.Transaction/ImmediateTransaction— run a closure in a transaction that commits on success, rolls back on error.ExecScript— execute a multi-statement SQL script.Execute— a row-callback query with named params and anExecOptions{Named, ResultFunc}struct, plusResultStrings/ResultIntscollectors — norows.Next/Scan/Err/Closeboilerplate.ResultInt/ResultText/ResultFloat/ResultBool— single-scalar reads.Migrate— anembed.FSmigration runner tracked viaPRAGMA user_version: appliesNNNN_*.sqlfiles in order, idempotently.
import "gosqlite.org/sqlitex"
//go:embed migrations/*.sqlvar migrations embed.FS
n, _ := sqlitex.Migrate(ctx, db, migrations) // apply pending migrations_ = sqlitex.Transaction(ctx, db, func(tx *sql.Tx) error { _, e := tx.ExecContext(ctx, `INSERT INTO accounts(name) VALUES ('alice')`) return e})bal, _ := sqlitex.ResultInt(ctx, db, `SELECT balance FROM accounts WHERE name='alice'`)Runnable: examples/features/advanced/sqlitex/.