SQLite Forum

open db in read only; explicitly store diff as WAL ?
Login
What you describe is exactly what SQLite's [WAL mode][1] does, if one does not [*checkpoint*][2] (which is active by default).

What's missing is the ability to use that .wal file independently, and *apply* it *manually* to the DB,  
although [someone managed to do that][3] w/o patching SQLite (AFAIK), by careful use of the official SQLite3 API.

The [SQLdiff](https://sqlite.org/sqldiff.html) utility is *static*. You'd need to keep an unchanged copy of your old.db, and diff with the
resulting new.db,  
to obtain SQL text for *logical* changes between the two. While the .wal file records *physical* changes to pages.

In any case, your use-case is not quite mainstream, and not directly supported by SQLite I'm afraid.

[1]: https://sqlite.org/wal.html
[2]: https://sqlite.org/wal.html#checkpointing
[3]: https://github.com/benbjohnson/litestream