IDBOpenDBRequest: upgradeneeded event
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The upgradeneeded event is fired when an attempt was made to open a database with a version number higher than its current version.
This event is not cancelable and does not bubble.
Syntax
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("upgradeneeded", (event) => { })
onupgradeneeded = (event) => { }
Event type
An IDBVersionChangeEvent. Inherits from Event.
Event properties
Also inherits properties from its parent, Event interface.
IDBVersionChangeEvent.oldVersionRead only- 
Returns the old version of the database.
 IDBVersionChangeEvent.newVersionRead only- 
Returns the new version of the database.
 
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
  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 });
});
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
  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 });
};
Specifications
| Specification | 
|---|
| Indexed Database API 3.0> # eventdef-idbopendbrequest-upgradeneeded>  | 
            
Browser compatibility
Loading…