# Sqlitecpp Update Sqlite

> How to update the bundled SQLite3 amalgamation (sqlite3/sqlite3.c and sqlite3.h), the Meson wrap, README.md, and CHANGELOG.md. Use when upgrading SQLite, refreshing the vendored amalgamation, or bumping the sqlite3 wrap.

- Skill: `srombauts/sqlitecpp-update-sqlite` (Agent Skill)
- Install (CLI): `npx skillmds@latest add srombauts/sqlitecpp-update-sqlite`
- Raw SKILL.md: https://api.skillmd.com/api/skills/srombauts/sqlitecpp-update-sqlite/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: srombauts (https://skillmd.com/u/srombauts)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/srombauts/sqlitecpp-update-sqlite

---


# Updating the bundled SQLite3

SQLiteCpp ships a copy of the SQLite3 amalgamation under `sqlite3/` so the CMake build works with
no system dependency. The Meson build instead pulls SQLite from wrapdb via a wrap file. An upgrade
touches both.

Do this on a dedicated branch named `update-sqlite-X.Y.Z` (for example `update-sqlite-3.52.2`),
matching the SQLite version you are moving to.

## 1. Download the amalgamation
Get `sqlite-amalgamation-NNNNNNN.zip` from the [SQLite download page](https://www.sqlite.org/download.html).
`NNNNNNN` encodes the version with two digits per component: `3.51.3` is `3510300`.

## 2. Replace the vendored files
Extract and overwrite, verbatim, with the files from the zip:
- `sqlite3/sqlite3.c`
- `sqlite3/sqlite3.h`

Do not hand-edit them. Build-time feature flags (`SQLITE_OMIT_LOAD_EXTENSION`,
`SQLITE_ENABLE_COLUMN_METADATA`, and the rest in [[sqlitecpp-sqlite-flags]]) are passed as compile
definitions, never by patching the amalgamation.

## 3. Update `sqlite3/README.md`
- The amalgamation line: filename, version, and release date, e.g.
  `"sqlite3.c" and "sqlite3.h" files from sqlite-amalgamation-3510300.zip (SQLite 3.51.3 2026-03-13)`
- The copyright year, if the year has rolled over.

## 4. Update the copyright year
Bump the year in `sqlite3/CMakeLists.txt` if it changed (it tracks the same `2012-<year>` range).

## 5. Update the Meson wrap (separate concern)
`subprojects/sqlite3.wrap` points at a wrapdb release and can lag behind the CMake amalgamation
version. Bump it to the matching `sqlite3_X.Y.Z-N` package (the `directory`, `source_url`,
`source_filename`, `source_hash`, `patch_*`, and `wrapdb_version` fields). This is often a separate
PR from the amalgamation drop.

## 6. Build, test, and record
- Build and run the tests on both CMake and Meson (see [[sqlitecpp-build-cmake]] and
  [[sqlitecpp-build-meson]]).
- Update `CHANGELOG.md` following [[sqlitecpp-workflow]] conventions:
  Add one line (or update the existing one) under the current unreleased version heading:
  `- Update SQLite from A.B.C to X.Y.Z (YYYY-MM-DD) (#NNN)`.

The SQLite version bump is independent of the SQLiteCpp version. Bumping the SQLiteCpp version and
tagging are the release process: see [[sqlitecpp-release]].

