Tout d'abord, je voudrais dire que je suis nouveau dans la base de données H2. J'ai besoin d'exécuter un fichier de script sql dans la base de données h2. J'ai un fichier de script test.sql et je veux l'exécuter dans la base de données h2. C'est possible?
Vous pouvez utiliser instruction SQL RUNSCRIPT :
RUNSCRIPT FROM 'test.sql'
ou vous pouvez utiliser outil RunScript autonome/ligne de commande :
Java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:~/test -script test.sql
Vous pouvez également utiliser l'outil RunScript dans une application:
RunScript.execute(conn, new FileReader("test.sql"));
Si vous utilisez Spring-Boot et Spring-Test avec H2, il recherchera automatiquement schema.sql
et data.sql
dans votre chemin de classe et essayez de les exécuter. Donc, si vous les mettez dans src/test/resources
ils doivent être récupérés et exécutés automatiquement
De plus, vous pouvez spécifier les fichiers de données que vous souhaitez exécuter avec les propriétés. Par exemple, en ajoutant une propriété à votreapplication.properties
comme
spring.datasource.data=classpath:users.sql, classpath:books.sql, classpath:reviews.sql
configurera spring pour exécuter ces trois fichiers sql au lieu d'exécuter data.sql
Sur OSX (cela ne devrait pas vraiment avoir d'importance) avec la version 1.4.192 avec les commandes suivantes, peu importe ce que j'ai fait, je n'ai pu voir aucun résultat:
Java -cp h2*.jar org.h2.tools.RunScript -url "jdbc:h2:file:~/testdb" -user someusername -password somepass -script select.sql
où select.sql avait simplement:
select * from PUBLIC.MYTABLE;
J'ai dû ajouter le -showResults
avant que la sortie ne commence à apparaître. Voici la commande complète:
Java -cp /Users/az/.m2/repository/com/h2database/h2/1.4.192/h2-1.4.192.jar org.h2.tools.RunScript -url "jdbc:h2:file:~/testdb" -user someusername -password somepass -script select.sql -showResults
Si vous n'avez pas le pot nécessaire, téléchargez-le depuis ici (Cliquez sur le jar
liens à côté de chaque version). Certains liens directs vers les pots sont les suivants:
1.4.193 (Mis à jour le 31 octobre 2016)
1.4.192 (Mis à jour le 26 mai 2016)
1.4.191 (Mis à jour le 21 janvier 2016)
1.4.190 (Mis à jour le 11 octobre 2016)
Pour moi, le système a répondu par:
n'a pas trouvé le pilote org.h2.tools.RunScript
La solution était:
Java -classpath <path_to_your_h2-*.jar> org.h2.tools.RunScript \
-url jdbc:h2:tcp://localhost/~/test -script test.sql
Voir: http://www.h2database.com/html/tutorial.html#using_server