IDBOpenDBRequest: upgradeneeded event
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Theupgradeneeded
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 likeaddEventListener()
, or set an event handler property.
addEventListener("upgradeneeded", (event) => { })onupgradeneeded = (event) => { }
Event type
AnIDBVersionChangeEvent
. Inherits fromEvent
.
Event properties
Also inherits properties from its parent,Event
interface.
IDBVersionChangeEvent.oldVersion
Read onlyReturns the old version of the database.
IDBVersionChangeEvent.newVersion
Read onlyReturns the new version of the database.
Examples
This example opens a database and handles theupgradeneeded
event by making any necessary updates to the object store.
// Open the databaseconst 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 databaseconst 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 |