Dernière mise à jour le .
  1. Documentation
  2. >
  3. Module
  4. >
  5. JSQL
  6. >
  7. createDatabase

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énement onupgradeneeded sera propagé lors de l'ouverture de la base de données;
    • .onversionchange : méthode qui sera appelée lorsque l'événement onversionchange 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.

Méthodes liées