Bonjour !
Après avoir parcouru bon nombre de documentations, tutoriels et FAQ, je ne parviens toujours pas à utiliser "hbernate-tools" pour créer et/ou mettre à jour mon schema de base de données.
En fait, j'ai trouvé un moyen (un peu barbare) de le faire, en suivant les instructions de la doc dans
section 2 et en adaptant le fichier "hibernate.cfg.xml" à mes besoins :
au lieu d'utiliser une "base de données" HSQL DB, j'ai choisi une base de données MysSQL InnoDB et grâce à la ligne
Code:
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
à chaque fois que j'appelle la cible "run" de mon fichier build.xml, ça me recrée la base de données avec les classes et champs que j'ai rajouté.
Seulement voilà, ce n'est pas une bonne façon de procéder.
J'ai vu dans la
section 21 qu'il existait des outils pour générer un schéma de base de données, et même le mettre à jour sans tout écraser à chaque fois.
J'ai donc rajouté ceci à mon fichier build.xml :
Code:
<target name="schemaexport">
<taskdef name="schemaexport"
classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
classpathref="libraries" />
<schemaexport config="${sourcedir}/hibernate.cfg.xml"
quiet="no"
text="no"
drop="no"
delimiter=";"
output="schema-export.sql">
<fileset dir="${sourcedir}">
<include name="**/*.hbm.xml" />
</fileset>
</schemaexport>
</target>
Et voilà le résultat quand je lance
ant schemaexport :
Code:
BUILD FAILED
/tmp/build.xml:40: Schema text failed: Resource: org/gramaton/Cat.hbm.xml not found
Donc voilà mon problème : je sais pas comment créer une base de données à partir de mes fichiers "hibernate.cfg.xml" et "*.hbm.xml". D'ailleurs, s'il existe un moyen de générer ET les sources java, ET le schema de base de données à partir de ces fichiers, je serais heureux d'apprendre comment faire.
Je suis preneur de toute idée, lien vers une bonne explication ou toute autre forme d'aide.
Merci d'avance.