Base de données temporaire en mémoire en SQLite

est-il possible de créer une base de données en mémoire dans SQLite puis de la détruire par une simple requête?

j'ai besoin de faire ça pour tester ma couche db. Jusqu'à présent, je n'ai travaillé qu'à créer un fichier SQLite db normal et à le supprimer après tous les tests, mais tout faire en mémoire serait beaucoup mieux.

ainsi est-il possible d'instancier une base de données uniquement en mémoire sans rien écrire sur disque? Je ne peux pas utiliser juste des transactions, parce que je veux créer tout nouveau la base de données.

19
demandé sur Jakub Arnold 2009-05-11 23:33:37

3 réponses

Créer avec le nom de fichier ":mémoire:": Bases De Données En Mémoire.

Il va cesser d'exister dès que la connexion est fermée.

30
répondu Chad Birch 2009-05-11 19:35:21

comme alternative aux bases de données en mémoire, vous pouvez créer un SQLite base de données temporaire en utilisant une chaîne vide pour le nom de fichier. Il sera supprimé lorsque la connexion est fermée. L'avantage par rapport à une base de données en mémoire est que vos bases de données ne sont pas limitées à la mémoire disponible.

vous pouvez aussi créer votre base de données dans un fichier temporaire et laisser le système d'exploitation la nettoyer. Cela a l'avantage d'être accessibles pour l'inspection.

2
répondu Schwern 2015-09-29 00:37:38

je suggère de monter un système de fichiers tmpfs quelque part (RAM seulement le système de fichiers) et de l'utiliser pour vos tests unitaires.

Instancier des fichiers DB que la normale, puis les faire sauter à l'aide de rm, pourtant, rien n'a disparu sur le disque.

(EDIT: Nice - quelqu'un me battre pour une bonne réponse ;) en Laissant ici une autre option que peu importe)

1
répondu MikeyB 2009-05-11 19:40:40