Assaph Mehr wrote:

> How well does it handle db upgrades and schema changes? I expect to do
> quite a bit of changes to the data model between versions.

No problems with compatibility between minor versions of sqlite-ruby;
moving between sqlite and sqlite3 (both current versions of the
underlying library) is also very easy; the main differences
i've come across are in text encoding and support for binary objects.

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. It's not a huge loss. 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. But even if you use a 'pure'
custom serialisation strategy like Marshal (which can be combined
quite easily with SQLite, btw) and change the data model (instance vars)
between versions you still need to program defensively if
you want to be able to load objects marshalled by an older version of
an class's definition into a newer one.

 > Have you ever experience data corrupions?

Haven't had any data corruptions or segfaults.

hth
a