Ответ 1
Создайте его с именем файла ": memory:": Базы данных с памятью.
Он перестанет существовать, как только соединение с ним будет закрыто.
Возможно ли каким-то образом создать базу данных в памяти в SQLite, а затем уничтожить ее только каким-то запросом?
Мне нужно сделать это для модульного тестирования моего уровня db. До сих пор я работал только при создании нормального файла SQLite db и удалял, если после всех тестов, но все это в памяти было бы намного лучше.
Итак, можно ли инстанцировать базу данных только в памяти, не записывая ничего на диск? Я не могу использовать только транзакции, потому что хочу создать целую новую базу данных.
Создайте его с именем файла ": memory:": Базы данных с памятью.
Он перестанет существовать, как только соединение с ним будет закрыто.
В качестве альтернативы базам данных памяти вы можете создать временную базу данных SQLite, используя пустую строку для имени файла. Он будет удален, когда соединение будет закрыто. Преимущество над базой данных в базе данных заключается в том, что ваши базы данных не ограничены доступной памятью.
В качестве альтернативы вы можете создать свою базу данных в временном файле и позволить операционной системе очистить ее. Это имеет то преимущество, что доступно для осмотра.
Я бы предложил установить файловую систему tmpfs где-нибудь (только для файловой системы с ОЗУ) и использовать ее для ваших модульных тестов.
Создайте файлы DB как нормальные, затем сдуйте их, используя rm, но ничего не осталось на диске.
(EDIT: Nice - кто-то избил меня до правильного ответа;) Оставляя это здесь как еще один вариант, независимо от того)