> Altering tables is slightly more laborious than in MySQL because the
> ADD COLUMN syntax was only added in recent versions, so you have
> to copy and recreate tables.

Is that the way to also deal with dropping columns? Would the right
approach be to simply upon start-up read the affected tables, drop the
old one, recreate the new ones and then write the (massaged) data
back?

I understand that Rails' ActiveRecord does something similar for its
migrations. Have you had occasion to use it (with and without
migrations) over SQLite?

> Code will break if you
> SELECT columns that don't exist or if you assume that you're getting a
> string when you're fetching a NULL cell.

I guess that can be managed with a 'version' fields plus a set of
migrations for db upgrades, right?


As for programming defensively - I think I'd rather program paranoidally :-)
One of the problems I experienced with madeleine is indeed in changes
between revisions of the software. That's why I'm trying to find out
as much as I can before committing to a backend change that'll prove
inadequate.

Cheers,
Assaph