> but I'm curious as to what are the problems of storing them in db.
Re-checking as a result of this conversation did remind me that one pretty much ends-up with a necessary garbage collection daemon or timer, because most of the databases *don't* expose a callback for destructors on failed transactions (SQLite included).
This can result in considerable wasted resources (borg compaction being a manual step has similar drawbacks; its handling failed/orphaned objects is frequently considerably worse).
SQLite has size limits for blobs that are set at compile-time, by default 1GB.
PostgreSQL has similar limits for inline blobs, while its Large Object facility has single-table storage limits that shouldn't apply because it should be using automatically-generated partitioned tables for the feature.
The others are a mix of the same and having a bunch of issues *as DBMSes* that make them a bad choice in general.
> This is what pragma synchronous is about
Ah, the interaction I had missed. Combined with the previous pragmas you mentioned, one *could* have something reasonable with that.
