Ne peut pas parcourir une H2 fichier de base de données?
Je suis entrain de créer un H2 de la base de données dans mes tests unitaires. La base de données utilise les propriétés suivantes:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.h2.Driver"/>
<property name="url" value="jdbc:h2:file:target/db/testdb"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>
Je suis l'aide de la version 1.3.166 de la com.h2database.h2
fichier jar.
Quand je lance mes tests, je vois la base de données créée dans target/db
répertoire, et un testdb.h2.db
fichier existe. Mes tests et de charger des données à partir de la base de données. Je peux ouvrir le target/db/testdb.h2.db
fichier et voir les instructions SQL que j'ai utilisé pour créer la base de données.
Cependant, lorsque j'essaie de charger le target/db/testsb.h2.db
fichier dans une base de données, outil d'exploration tels que DBVisualizer, je ne vois pas de tables ou de données. Pour DBVisualizer-je spécifier le H2(Intégré) mode.
J'ai aussi essayé le H2 console mais un show tables
commande renvoie un jeu de résultats vide.
Je ne vois pas ce que je fais de mal: le fichier de base de données existe, l'exécution des tests contre correctement, mais je ne peut pas ouvrir ce fichier dans une base de données navigateur.
Des suggestions?
OriginalL'auteur John Q Citizen | 2013-04-17
Vous devez vous connecter pour publier un commentaire.
Plus probablement, le problème est à la base de données d'URL que vous utilisez.
Cela signifie que le fichier de base de données est stockée par rapport au répertoire de travail courant. Donc ça dépend de l'endroit où vous avez commencé à l'application. Si vous avez commencé à DBVisualizer dans un répertoire différent (ce qui est fort probable que vous n'), puis c'est la création d'un nouveau base de données dans un répertoire différent.
Pour vous assurer que vous utilisez la même base de données, je suggère d'utiliser un absolu d'un répertoire de nom, ou par rapport à l'actuel répertoire principal de l'utilisateur, comme décrit dans le H2 documentation:
Le préfixe
file:
est facultatif.target/db/testdb.h2.db
fichier. Mais la bonne méthode est de supprimer la.h2.db
extension. Mauvaise conception de l'INTERFACE utilisateur à mon humble avis.Je pense que dans le prochain maire de la version de H2 (2.0 peut-être) il n'y aura pas codé en dur de nom de fichier de suffixe.
Vous gagnez tous mes internet pour une semaine! C'était la question. J'ai été en utilisant migrations de base de données et ne pouvais pas comprendre pourquoi les tables n'ont pas été créés. S'est avéré que la suppression de .h2.db a fait le tour. Utilisation de l'interface utilisateur échouer! Et merci pour la solution!
OriginalL'auteur Thomas Mueller
Si vous obtenez une erreur comme
le problème (comme le message l'indique) que vous utilisez une base de données créé avec une ancienne version de h2. Afin de parcourir la base de données avec dbVisualizer vous pouvez créer une nouvelle base de données pilote:
Tools
>Driver manager...
>Create a new driver
Remplissez les champs et sélectionnez le droit h2 fichier jar, et vous devriez être bon d'aller.
OriginalL'auteur zpon