Временная база данных в памяти в SQLite - PullRequest
19 голосов
/ 11 мая 2009

Можно ли как-то создать базу данных в памяти в SQLite, а затем уничтожить ее просто каким-нибудь запросом?

Мне нужно сделать это для модульного тестирования моего слоя БД. До сих пор я только работал, создавая обычный файл базы данных SQLite и удаляя его после всех тестов, но делать все это в памяти было бы намного лучше.

Так возможно ли создать базу данных только в памяти, не записав ничего на диск? Я не могу использовать только транзакции, потому что я хочу создать совершенно новую базу данных.

Ответы [ 3 ]

30 голосов
/ 11 мая 2009

Создайте его с именем файла ": memory:": Базы данных в памяти .

Он перестанет существовать, как только соединение с ним будет закрыто.

2 голосов
/ 29 сентября 2015

В качестве альтернативы базам данных в памяти вы можете создать временную базу данных SQLite , используя пустую строку для имени файла. Он будет удален при закрытии соединения. Преимущество перед базой данных в памяти состоит в том, что ваши базы данных не ограничены доступной памятью.

Кроме того, вы можете создать свою базу данных во временном файле и позволить операционной системе очистить ее. Преимущество в том, что он доступен для осмотра.

1 голос
/ 11 мая 2009

Я бы предложил смонтировать где-нибудь файловую систему tmpfs (только файловая система RAM) и использовать ее для ваших модульных тестов.

Создайте файлы БД в обычном режиме, а затем удалите их с помощью команды rm - но на диск ничего не попало.

(РЕДАКТИРОВАТЬ: Хорошо - кто-то избил меня до правильного ответа;) Оставив это здесь как еще один вариант, независимо от того)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...