Daniel’s developer notes: Be careful when using nightly builds…

There has been some trouble with an accidental SQLite database schema change I’ve backed out on monday (see bug 446303), which has forced people (which have updated to that specific nightly) to manually restore their storage.sdb.
I’d like to remind everybody that the nightly builds of Sunbird and Lightning are development versions that might break your profile and data. Even though the recent case didn’t bring any dataloss (at least I am not aware of any) and a workaround is available, please take care and do backups before updating.
To prevent SQLite database schema trouble in the future, we’ve decided to require an additional second review on schema changes, and may add a bug keyword to tag those important changes.
I hope you understand…

2 comments

  1. For the application I have that uses an embedded database, I store a table that contains the current schema version. Then whenever I need to do a schema evolution, I can backup the current version.
    I also have a state flag that tracks the beginning and end of the schema update process, to prevent evolution failures from leaving the database completely messed up.

  2. Hi Noel,
    about the state flag: Why don’t you rely on database transactions?