2009-05-11 22 views
19

¿Es posible de alguna manera crear una base de datos en memoria en SQLite y luego destruirla solo con una consulta?Base de datos temporal en memoria en SQLite

Necesito hacer esto para probar mi capa de db. Hasta ahora solo he trabajado creando un archivo db SQLite normal y borrando si después de todas las pruebas, pero hacerlo todo en memoria sería mucho mejor.

Entonces, ¿es posible instanciar la base de datos solo en la memoria sin escribir nada en el disco? No puedo usar solo transacciones, porque quiero crear una base de datos completamente nueva.

Respuesta

30

Creenlo con el nombre de archivo ": memoria:": In-Memory Databases.

Dejará de existir tan pronto como se cierre la conexión.

+0

wow, thx para una respuesta ultrarrápida :) –

+3

¿Es posible trabajar con una base de datos en memoria y luego copiarla en el disco? (la idea es * acelerar el bloqueo y las operaciones costosas en el tiempo de las escrituras *) –

1

Sugiero montar un sistema de archivos tmpfs en alguna parte (sistema de archivos RAM solamente) y usarlo para las pruebas de su unidad.

Cree copias de seguridad de los archivos de base de datos de manera normal y luego arrójelos con rm; sin embargo, nada ha ido al disco.

(EDIT: Niza - alguien se me adelantó una respuesta correcta;) Dejando esto aquí como otra opción independientemente)

2

Como alternativa a la base de datos en memoria, se puede crear un SQLite temporary database mediante el uso de una cadena vacía para el nombre del archivo. Se eliminará cuando la conexión se cierre. La ventaja sobre una base de datos en memoria es que sus bases de datos no están limitadas a la memoria disponible.

Como alternativa, puede crear su base de datos en un archivo temporal y dejar que el sistema operativo la limpie. Esto tiene la ventaja de ser accesible para su inspección.

Cuestiones relacionadas