Last modified: 2014-09-23 23:16:11 UTC
The updatelog table is empty after a fresh install, so a subsequent upgrade will perform unnecessary and potentially dangerous upgrade operations.
In my original design of expanding the updatelog table, I was planning to track version numbers installed (as well as breaking up getCoreUpdateList() by version numbers). Thus the updater could at least skip updates we know we have. Aryeh didn't like that idea, so I reverted it (can't seem to find where, at the moment)
Specifically, for most updates we don't need to log anything in updatelog -- we can directly check whether the update is present. This is simpler and more failsafe, so I don't like the idea of using updatelog for those updates unless there's some good specific reason (speed?). However, for updates where we can't tell whether it's been run without an updatelog row, obviously we've got to add that on fresh installs, yeah. At best it would be a waste of time to run those updates unnecessarily, and at worst perhaps dangerous. (Although I'm not sure what kind of updates would be harmful to run twice, that wouldn't also cause problems if they were aborted midway through and had to be resumed.)