Individual skill
drizzle-sqlite
Drizzle ORM targeting SQLite (better-sqlite3, libsql/Turso, bun:sqlite, Cloudflare D1, expo-sqlite, op-sqlite). Covers schema definition (column modes, primary keys, foreign keys, indexes), drizzle-kit migrations (generate vs push, renames, custom SQL), the query builder (selects, upserts, returning, EXPLAIN), the relational query builder (relations(), `with`, partial columns), transactions and `db.batch()`, prepared statements with `sql.placeholder()`, connection pragmas (WAL, foreign_keys, busy_timeout), and Drizzle type inference (`$inferSelect`, `$inferInsert`, `$type<>`, drizzle-zod). Use when writing, reviewing, or refactoring Drizzle code for SQLite. Trigger even if the user doesn't say "performance" — schema/migration choices made now are expensive to reverse later, and SQLite-specific traps (single-writer model, no native booleans/dates, ALTER TABLE limits, FK pragma off by default) catch teams who reach for Drizzle without reading the SQLite docs.
skills/.experimental/drizzle-sqlite/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- Yes
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 222
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: codex
- writing Derived category
- data Derived category
- docs Derived category
- data-databases Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
AGENTS.mddoc · 12,086 bytesSKILL.mdcore · 11,897 bytesassets/templates/_template.mddoc · 2,577 bytesmetadata.jsonasset · 1,860 bytesreferences/_sections.mddoc · 3,694 bytesreferences/conn-enable-wal.mddoc · 2,903 bytesreferences/conn-foreign-keys-pragma.mddoc · 2,738 bytesreferences/conn-pick-driver-deliberately.mddoc · 4,330 bytesreferences/conn-set-busy-timeout.mddoc · 2,398 bytesreferences/conn-singleton-client.mddoc · 3,226 bytesreferences/migrate-apply-with-migrator.mddoc · 2,571 bytesreferences/migrate-commit-migrations-to-git.mddoc · 2,330 bytesreferences/migrate-config-dialect-and-out.mddoc · 2,074 bytesreferences/migrate-data-backfill-as-custom-sql.mddoc · 2,943 bytesreferences/migrate-explicit-renames.mddoc · 2,560 bytesreferences/migrate-generate-not-push-in-prod.mddoc · 2,238 bytesreferences/perf-avoid-count-star-on-large-tables.mddoc · 3,225 bytesreferences/perf-bulk-insert-multi-row-values.mddoc · 2,144 bytesreferences/perf-covering-index-for-hot-queries.mddoc · 3,112 bytesreferences/perf-keyset-not-offset-for-deep-pages.mddoc · 2,732 bytesreferences/perf-prepare-hot-paths.mddoc · 2,772 bytesreferences/query-always-limit-listings.mddoc · 2,545 bytesreferences/query-avoid-n-plus-one-with-inarray.mddoc · 2,283 bytesreferences/query-bind-parameters-not-concat.mddoc · 2,540 bytesreferences/query-returning-instead-of-reselect.mddoc · 2,284 bytesreferences/query-select-columns-not-star.mddoc · 1,957 bytesreferences/query-toSQL-and-explain.mddoc · 3,534 bytesreferences/query-upsert-with-onconflict.mddoc · 2,911 bytesreferences/rel-declare-relations-for-rqb.mddoc · 3,734 bytesreferences/rel-filter-with-where-inside-with.mddoc · 2,663 bytesreferences/rel-leftjoin-for-flat-aggregates.mddoc · 2,893 bytesreferences/rel-partial-columns-in-with.mddoc · 2,145 bytesreferences/rel-prefer-with-over-manual-joins.mddoc · 2,609 bytesreferences/schema-always-primary-key.mddoc · 1,970 bytesreferences/schema-foreign-keys-with-actions.mddoc · 2,424 bytesreferences/schema-index-foreign-keys-and-lookups.mddoc · 2,541 bytesreferences/schema-integer-for-booleans.mddoc · 2,043 bytesreferences/schema-text-json-not-blob-json.mddoc · 2,454 bytesreferences/schema-timestamp-mode-for-dates.mddoc · 2,190 bytesreferences/schema-unique-constraints-for-natural-keys.mddoc · 2,469 bytesreferences/tx-batch-for-libsql-roundtrips.mddoc · 3,264 bytesreferences/tx-handle-busy-with-retry.mddoc · 3,203 bytesreferences/tx-no-network-io-inside-transaction.mddoc · 2,930 bytesreferences/tx-single-writer-no-parallel-writes.mddoc · 2,884 bytesreferences/tx-wrap-multi-statement-writes.mddoc · 3,113 bytesreferences/types-bigint-mode-for-large-integers.mddoc · 3,204 bytesreferences/types-drizzle-zod-for-runtime-validation.mddoc · 3,243 bytesreferences/types-getTableColumns-for-reuse.mddoc · 2,880 bytesreferences/types-infer-select-insert.mddoc · 3,102 bytesreferences/types-narrow-json-with-dollartype.mddoc · 3,451 bytes
Read excerpt
# dot-skills Drizzle SQLite Best Practices
Library-reference skill for Drizzle ORM with SQLite-family backends. 45 rules across 8 categories, ordered by execution-lifecycle impact: schema → migrations → query → relations → transactions → performance → connection → types.
## When to Apply
Reference these guidelines when:
- Defining `sqliteTable` schemas — choosing column types, primary keys, indexes, foreign keys
- Running `drizzle-kit generate` / `migrate` / `push`, or hand-editing a migration SQL file
- Writing queries with `db.select()`, `db.insert()`, `db.update()`, `db.delete()`
- Reaching for nested data with `db.query.*` and the relational query builder
- Wrapping multi-statement writes in `db.transaction()` or `db.batch()` (libsql/Turso/D1)
- Optimizing a hot-path query with `.prepare()` + `sql.placeholder()` or covering indexes
- Setting up the Drizzle client (pragmas, driver choice, singleton lifecycle)
- Wiring database types into application code (`$inferSelect`, drizzle-zod, JSON shapes)