IDBDatabase.onversionchange

The onversionchange event handler of the IDBDatabase interface handles the versionchange event, fired when a database structure change (IDBOpenDBRequest.onupgradeneeded event or IDBFactory.deleteDatabase) was requested elsewhere (most probably in another window/tab on the same computer).

This is different from the versionchange transaction (but it is related).

Note: This feature is available in Web Workers.

Syntax

IDBDatabase.onversionchange = function(error) { ... }

Example

This example shows an IDBOpenDBRequest.onupgradeneeded block that creates a new object store; it also includes onerror and onabort functions to handle non-success cases, and an onversionchange function to notify when a database structure change has occurred.

request.onupgradeneeded = function(event) {
  var db = event.target.result;
    
  db.onerror = function(event) {
    note.innerHTML += '<li>Error opening database.</li>';
  };

  db.onabort = function(event) {
    note.innerHTML += '<li>Database opening aborted!</li>';
  };

  // Create an objectStore for this database
    
  var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });
    
  // define what data items the objectStore will contain
    
  objectStore.createIndex("hours", "hours", { unique: false });
  objectStore.createIndex("minutes", "minutes", { unique: false });
  objectStore.createIndex("day", "day", { unique: false });
  objectStore.createIndex("month", "month", { unique: false });
  objectStore.createIndex("year", "year", { unique: false });

  objectStore.createIndex("notified", "notified", { unique: false });
    
  note.innerHTML += '<li>Object store created.</li>';
    
  db.onversionchange = function(event) {
    note.innerHTML += '<li>a database change has occurred; you should refresh this
                       browser window, or close it down and use the other open version of
                       this application, wherever it exists.</li>';
  };
};

Specifications

Specification Status Comment
Indexed Database API
The definition of 'onversionchange' in that specification.
Recommendation  
Indexed Database API 2.0
The definition of 'onversionchange' in that specification.
Recommendation  

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support

24

23 — 24 webkit

?

16

10 — 16 moz

101157
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes ?22228 Yes

1. partial

See also

Document Tags and Contributors

 Contributors to this page: fscholz, jpmedley, chrisdavidmills
 Last updated by: fscholz,