IDBOpenDBRequest: upgradeneeded event

The upgradeneeded event is fired when an attempt was made to open a database with a version number higher than its current version.

Bubbles No
Cancelable No
Interface IDBVersionChangeEvent
Event handler onupgradeneeded

Examples

This example opens a database and handles the upgradeneeded event by making any necessary updates to the object store.

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

dBOpenRequest.addEventListener('upgradeneeded', event => {
  const db = event.target.result;
  console.log(`Upgrading to version ${db.version}`);

  // 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 });
});

This is the same example, but uses the onupgradeneeded event handler property.

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

dBOpenRequest.onupgradeneeded = event => {
  const db = event.target.result;
  console.log(`Upgrading to version ${db.version}`);

  // 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 });
};

Browser compatibility

BCD tables only load in the browser

See also