Yet another day to advertise for semantic versioning (and Linode database).
Today I was trying to upgrade my blog from typecho 1.2.1 to 1.3.0, which seems to be a not-so-big upgrade. Despite very slow update from the dev team (1.2.1 was released 2.5 years ago), they tend to maintain a relatively good backward compatibility. So I upgraded, and everything failed.
Turns out this update changed a lot of the internal stuff, especially how data is stored. So the themes and plugins are likely to be broken with the new version. In this case, by following the semantic versioning, they should release this version as 2.x.x. But they didn't. Shame on them (well, probably shouldn't say this, because the dev teams are working on this for free and for passion. I really appreciate their work and efforts, but I still feel a bit annoyed by them not following the proper versioning rule).
I create a snapshot for my server, so when things are not working, I can revert the files pretty fast. However, I do forget to back up the database, since during the update, the database schema has been changed. And the old version can't work with the new schema. Luckily, Linode (yes, I know they are now Akamai) offers amazing backup service. From their words: Databases are automatically backed-up with full daily backups for the past 14 days, and binary logs recorded continuously. Full backups are version-specific binary backups, which when combined with binary logs allow for consistent recovery to a specific point in time (PITR).
Yes, I can rewind to any point in time in the last 14 days, accurate to the second. Linode (and the low traffic of my blog) literally saved my day.