Web/API/IDBDatabase/versionchange event

From Get docs

The versionchange event is fired when a database structure change (IDBOpenDBRequest.onupgradeneeded event or IDBFactory.deleteDatabase) was requested.

Bubbles No
Cancelable No
Interface Event
Event handler property onversionchange

Examples

This example opens a database and, on success, adds a listener to versionchange:

// Open the database
const dBOpenRequest = window.indexedDB.open('Nonexistent', 4);

dBOpenRequest.onupgradeneeded = event => {
  const db = event.target.result;
  // Create an objectStore for this database
  const 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 });
};

dBOpenRequest.addEventListener('success', event => {
  const db = event.target.result;
  db.addEventListener('versionchange', event => {
    console.log('The version of this database has changed');
  });

});

The same example, using the onversionchange event handler property:

// Open the database
const dBOpenRequest = window.indexedDB.open('Nonexistent', 4);

dBOpenRequest.onupgradeneeded = event => {
  const db = event.target.result;
  // Create an objectStore for this database
  const 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 });
};

dBOpenRequest.onsuccess = event => {
  const db = event.target.result;
  db.onversionchange = event => {
    console.log('The version of this database has changed');
  };

};

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
versionchange event

Chrome Full support 24


Full support 24


No support 23 — 24

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Edge

Full support 12

Firefox Full support 16


Full support 16


No support 10 — 16

Prefixed'

Prefixed' Implemented with the vendor prefix: moz

IE

Partial support 10

Opera

Full support 15

Safari

Full support 7

WebView Android

Full support Yes

Chrome Android

Full support 25

Firefox Android

Full support 22

Opera Android

Full support 14

Safari iOS

Full support 8

Samsung Internet Android

Full support 1.5

Legend

Full support  
Full support
Partial support  
Partial support
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also