Ich führe gerade eine IndexedDB mit 3 ObjectStores und der folgenden--Funktion.IndexedDB vorhandene ObjectStore-Daten beim Upgrade beibehalten
var openRequest = indexedDB.open("DB_v3", 1);
openRequest.onupgradeneeded = function(e) {
var thisDB = e.target.result;
if(!thisDB.objectStoreNames.contains("ObjectStore1")) {
var objectStore = thisDB.createObjectStore("ObjectStore1", {autoIncrement:true});
objectStore.createIndex("name", "name", {unique:true});
}
if(!thisDB.objectStoreNames.contains("ObjectStore2")) {
//create objectstore & index as above
}
if(!thisDB.objectStoreNames.contains("ObjectStore3")) {
//create objectstore & index as above
}
}
Was ich jetzt tun möchte, ist einen vierten Objektspeicher hinzufügen. Das für ich die Version ändern und einen vierten Eintrag in onupgradeneeded
hinzufügen.
var openRequest = indexedDB.open("DB_v4", 1);
openRequest.onupgradeneeded = function(e) {
//same as above
if(!thisDB.objectStoreNames.contains("ObjectStore4")) {
//create objectstore & index as above
}
}
All das funktioniert gut, aber das Problem ist, sobald die onupgradeneeded
die bereits vorhandenen ObjectStores verlieren ihre Daten alle aufgerufen wird.
Wie muss die onupgradeneeded
aussehen, um die Daten der bereits vorhandenen ObjectStores zu behalten?