CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/sqlite-go-best-practices

SQLite best practices for Go — WAL mode, foreign_keys, busy_timeout, SetMaxOpenConns, context-aware queries, transactions, migrations

98

2.36x
Quality

99%

Does it follow best practices?

Impact

97%

2.36x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Evaluation results

100%

58%

Bookmark Manager REST API

Criteria
Without context
With context

modernc.org/sqlite driver

0%

100%

WAL mode enabled

0%

100%

foreign_keys enabled

30%

100%

busy_timeout configured

0%

100%

SetMaxOpenConns(1)

0%

100%

HTTP request context propagated to DB

0%

100%

defer rows.Close()

100%

100%

rows.Err() checked

100%

100%

Parameterized queries

100%

100%

Transaction for bookmark with folders

62%

100%

defer tx.Rollback()

100%

100%

ON DELETE CASCADE in schema

100%

100%

95%

64%

Expense Tracker CLI

Criteria
Without context
With context

modernc.org/sqlite driver

0%

100%

WAL mode enabled

0%

100%

foreign_keys enabled via DSN

0%

100%

busy_timeout set

0%

100%

SetMaxOpenConns(1)

0%

100%

Money stored as integer cents

100%

100%

Context-aware queries

0%

100%

defer rows.Close()

100%

100%

rows.Err() checked

0%

100%

Parameterized queries

100%

100%

CHECK constraint on category

0%

0%

Migration pattern

0%

100%

Dates stored as TEXT

100%

100%

100%

68%

Local Note-Taking App

Criteria
Without context
With context

modernc.org/sqlite driver

100%

100%

WAL mode enabled

0%

100%

foreign_keys enabled via DSN

0%

100%

busy_timeout set

0%

100%

SetMaxOpenConns(1)

0%

100%

Context-aware queries used

0%

100%

defer rows.Close() on all queries

100%

100%

rows.Err() checked after iteration

100%

100%

Parameterized queries throughout

100%

100%

Transaction for note+tag creation

0%

100%

defer tx.Rollback() pattern

0%

100%

Migration with version tracking

0%

100%

93%

44%

Background Task Queue Service

Criteria
Without context
With context

modernc.org/sqlite driver

0%

100%

WAL mode enabled

100%

100%

foreign_keys enabled via DSN

0%

100%

busy_timeout set

0%

100%

SetMaxOpenConns(1)

0%

100%

Atomic claim with transaction

100%

100%

HTTP context propagated to DB

0%

100%

defer tx.Rollback() pattern

100%

100%

defer rows.Close()

100%

100%

Parameterized queries

100%

100%

CHECK constraint on status

0%

0%

Index on status and priority

40%

40%

98%

44%

URL Shortener Service

Criteria
Without context
With context

modernc.org/sqlite driver

0%

100%

WAL mode enabled

100%

100%

foreign_keys enabled via DSN

0%

100%

busy_timeout set

0%

100%

SetMaxOpenConns(1)

0%

100%

HTTP context propagated to DB

0%

100%

Parameterized queries

100%

100%

defer rows.Close()

100%

100%

sql.ErrNoRows handled

100%

100%

Unique constraint on short_code

100%

60%

Index on short_code

100%

100%

Efficient click counter update

100%

100%

Migration pattern

20%

100%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents