Dernière mise à jour le .
JSQL.createDatabase
Crée ou met à jour une base de données.
Synthaxe
JSQL.createDatabase(objt[, versionType]);
Où:
-
objt
: objet tel que:-
.name
: nom de la base de données; -
.version
: version de la base de données qu'il faut créer; -
.source
[]: tableau contenant des objets pointant sur les fichiers JSON décrivant la structure de la base de données pour une version données. Chaque fichier JSON doit être au format défini dans la section Format des fichiers de description de base de données; -
.onupgradeneeded
: méthode qui sera appelée lorsque l'événementonupgradeneeded
sera propagé lors de l'ouverture de la base de données; -
.onversionchange
: méthode qui sera appelée lorsque l'événementonversionchange
sera propagé sur la base de données. Cette événement survient lorsque la base de données subit une mise à jour dans un thread différent.
-
-
versionType
Facultatif: défini si, lorsque la promesse est résolue et qu'il n'y a pas d'erreur, la version retournée doit être au format "développeur" (true
) ou au format système (false
).
Valeur de retour
Une promesse (Promise
) est retournée.
Celle-ci sera résolue lorsque la base de données aura fini d'être créée ou mise à jour.
La valeur fournie comme valeur de résolution dépend de l'argument versionType
.
Exemple
Exemple 1: Création et mise à jour d'une base de données
L'exemple ci-dessous demande la création d'une base de données et vérifie que l'opération à réussie.
(async function() {
const database = await JSQL.createDatabase({ /* ou Dynamique.module.JSQL si Dynamique est utilisé */
name : "DB-TEST",
version : 2,
source : {
"1" : {
// Le fichier ci-dessous sera appliqué automatiquement lorsqu'aucune base de données n'existe
description : "url_vers_mon_fichier_decrivant_ma_base_v1.json"
},
"2" : {
// Le fichier script devra appliquer la mise à jour depuis la v1 vers la v2
description : "url_vers_mon_fichier_decrivant_ma_base_v2.json",
script : "url_vers_mon_script_qui_sera_utilise_pour_convertir_ma_base_depuis_v1_a_v2.js"
}
},
onupgradeneeded : function() {
alert("Mise à jour ou création nécessaire");
},
onversionchange : function() {
alert("Nouvelle version disponible.");
document.location.reload();
}
});
if(database) { // Ici on ne test pas si database !== false car une version sera toujours > 0
alert("Base de données prête !");
}
else {
alert("Erreur !");
}
})();
Compatibilité
La prise en charge des Promise
est nécessaire ainsi que le support de l'API IndexedDB.