This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
It is never explicitly stated that the upgradeneeded event is your one chance to modify the database schema. This only becomes apparent after reading the VERSION_CHANGE transaction steps in detail. It's easy to miss this subtle point (at least it was for me :-P).
Did it seem like there was any other way to get a VERSION_CHANGE transaction? If so, where? There would likely be the place to indicate that it does not, in fact, produce a VERSION_CHANGE transaction.
Added the following note to the Editor's Draft of 12/27: A VERSION_CHANGE transaction is automatically created when, during the open database API, a database version number is provided that is greater than the current database version. This transaction will be active inside the onupgradeneeded event handler, allowing the creation of new object stores and indexes. Thanks, Eliot