Cameleon2: DBForge

DBForge est un outil pour décrire des schémas de base de données et générer le code OCaml permettant d'accéder à ces bases.
L'idée de l'outil est basée sur le problème suivant: La création de fonctions exécutant des requêtes SQL
Pour résoudre ces problèmes, nous voulons
Pour faire tout cela, nous avons besoin des informations suivantes à propos de chaque colonne de chaque table:
La liste des tables avec les informations ci-dessus pour chaque colonne est ce que nous appelons le schéma de base de données.
L'outil DBForge permet de définir un tel schéma dans une interface graphique et de générer le code OCaml correspondant. L'utilisateur peut également définir des requêtes SQL pour qu'elles soient encapsulées dans des fonctions OCaml dans le code généré. Pour l'instant, seules les requêtes de type "select" et "union" sont supportées.
La distribution contient un exemple dans le répertoire src/dbforge/example. On y trouve plusieurs fichiers.
Makefile est le fichier pour compiler avec make.
base.xml est le fichier contenant le schéma. Il peut être édité par l'éditeur graphique lancé avec la commande suivante:
dbforge2.gui.{x,byte} base.xmlLe code OCaml est généré à partir de ce fichier par la commande suivante:
dbforge2.{x,byte} -o base.ml base.xmlLe fichier base.ml contient alors le code OCaml généré. Ce dernier utilise deux modules installés en même temps que Cameleon2: Dbf_sql_driver et Dbf_sql_misc. On peut obtenir le fichier d'interface avec la commande suivante:
ocamlc -I +cameleon2 -i base.ml > base.mli
Le code généré est composé de foncteurs, un par table et un pour les requêtes additionnelles. Ces foncteurs prennent tous en paramètre un module du type Dbf_sql_driver.SqlDriver, qui permet d'abstraire le système de gestion de base de données utilisé en utilisant des modules partageant la même interface.
example.ml est le fichier principal de l'exemple. Il utilise le module Dbf_mysql dont le source est installé en même temps que Cameleon2. Comme il nécessite que la bibliothèque OCaml-Mysql soit installée, il n'est pas compilé à l'installation mais doit être compilé par l'application qui souhaite s'en servir. Ce module est du type Dbf_sql_driver.SqlDriver et peut donc être passé en paramètre aux foncteurs générés dans le fichier base.ml. Les modules obtenus fournissent les fonctions d'accès à la base de données.
A compléter...
Cameleon2: DBForge
