Добавить магазин, чтобы открыть IndexedDB

Есть ли способ создать store в IndexedDB после того, как он был open и прошел onupgradeneeded?

Я пытался:

var store = db.createObjectStore('blah', {keyPath: "id", autoIncrement:true});

Получите эту ошибку:

InvalidStateError: A mutation operation was attempted on a database that did not allow mutations.
2 ответа

Я согласен с Джошем, вам нужно уточнить свой вопрос.

Я предлагаю вам попробовать другой подход. Удалите базу данных и создайте новую.

var request = window.indexedDB.deleteDatabase('somedb');
request.onerror = function(event) {
 console.log('Error', event);
}
request.onsuccess = function(event){
 console.log('Success', event);
 //recreate database
 createNewDB();
}

ЗАМЕТКА

Вам нужно будет close() соединение, прежде чем вы сможете удалить database и создать новую.


Ты пробовал

var store = db.createObjectStore(...)

Я имею в виду, что вы должны удалить слово "obj"

Вы можете посмотреть здесь пример

licensed under cc by-sa 3.0 with attribution.