SQLite best practices for Go — WAL mode, foreign_keys, busy_timeout, SetMaxOpenConns, context-aware queries, transactions, migrations
98
99%
Does it follow best practices?
Impact
97%
2.36xAverage score across 5 eval scenarios
Passed
No known issues
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%
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%
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%
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%
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%