IDBOpenDBRequest: upgradeneeded-Ereignis

Das upgradeneeded-Ereignis wird ausgelöst, wenn versucht wird, eine Datenbank mit einer höheren Versionsnummer als der aktuellen Version zu öffnen.

Dieses Ereignis kann nicht abgebrochen werden und wird nicht propagiert.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder legen Sie eine Event-Handler-Eigenschaft fest.

js
addEventListener("upgradeneeded", (event) => {});

onupgradeneeded = (event) => {};

Ereignistyp

Ereigniseigenschaften

Erbt auch Eigenschaften von seiner übergeordneten Event-Schnittstelle.

IDBVersionChangeEvent.oldVersion Nur lesbar

Gibt die alte Version der Datenbank zurück.

IDBVersionChangeEvent.newVersion Nur lesbar

Gibt die neue Version der Datenbank zurück.

Beispiele

Dieses Beispiel öffnet eine Datenbank und behandelt das upgradeneeded-Ereignis, indem es notwendige Updates im Objekt-Store durchführt.

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

Dies ist dasselbe Beispiel, verwendet jedoch die onupgradeneeded-Event-Handler-Eigenschaft.

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

Spezifikationen

Specification
Indexed Database API 3.0
# eventdef-idbopendbrequest-upgradeneeded

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch