55 votes

Réinitialiser périodiquement la base de données H2 intégrée

Je configure une nouvelle version de mon application dans un serveur de démonstration et j’aimerais trouver un moyen de réinitialiser la base de données quotidiennement. Je suppose que je peux toujours avoir un travail cron exécutant des gouttes et des requêtes, mais je cherche une approche plus propre. J’ai essayé d’utiliser une unité de persistance spéciale avec une approche drop-create, mais cela ne fonctionne pas car le système se connecte et se déconnecte fréquemment du serveur (à la demande).

Existe-t-il une meilleure approche?

95voto

Thomas Mueller Points 18666

H2 prend en charge une instruction SQL spéciale pour supprimer tous les objets:

Si vous ne souhaitez pas supprimer toutes les tables, vous pouvez utiliser la table tronquée:

10voto

oleg.cherednik Points 7238

Thre est une syntaxe spéciale dans Spring pour la manipulation de base de données dans les tests unitaires

Dans cet exemple, nous exécutons drop_all.sql script (où nous supprimons toutes les tables requises) après chaque méthode de test. Dans cet exemple, nous exécutons le script create.sql (où nous créons toutes les tables requises) et init.sql script (où nous initons toutes les tables requises avant chaque méthode de test.

4voto

dsantaolalla Points 73

La commande : SHUTDOWN
Vous pouvez l’exécuter à l’aide de RunScript.execute(jdbc_url, utilisateur, mot de passe, « classpath:shutdown.sql », « UTF8 », false);
Je l’exécute chaque fois que la suite de tests est terminée à l’aide de @AfterClass

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X