Je suis en train de mettre à jour avec force une base de données en IndexedDB en envoyant une demande d'ouverture avec le numéro de version de la base de données actuelle incrémentée par un avec:mise à jour de travail dans IndexedDB
var openRequest = indexedDB.open("db-name", dbVariable.version + 1);
Cependant l'événement onupgradeneeded
est jamais déclenché et le openRequest
reste dans l'état pending
indéfiniment.
Qu'est-ce que je fais mal?
Existe-t-il une autre façon de mettre à jour de force une base de données dans IndexedDB?
EDIT
Dire que j'ai une fonction connect2db
qui prend la variable version
:
function connect2db(version) {
var openRequest = indexedDB.open("database-name", version);
openRequest.onsuccess = function(e) {
databaseVariable = e.target.result;
}
openRequest.onupgradeneeded = function(e) {
databaseVariable = e.target.result;
// Do schema update...
}
}
Et j'ai une autre circonstance où je voudrais mettre à jour le schéma de base de données:
connect2db(databaseVariable.version + 1);
Supposons que darabaseVariable
existe déjà et pointe vers une base de données
Lorsque j'ai essayé d'exécuter du code dans ce format, l'événement onupgradeneeded
n'est jamais déclenché. Qu'est-ce qui pourrait mal tourner?
Vous devez montrer plus de code environnant, comme comment et quand et où cela s'appelle. Appeler indexedDB.open avec une version supérieure et le même nom de base de données est la façon dont vous forcer une mise à jour. – Josh