是否有可能以某种方式在SQLite中创建内存数据库,然后通过某些查询销毁它?
我需要这样做才能对我的数据库层进行单元测试。到目前为止,我只是通过创建正常的SQLite db文件并在所有测试后删除,但在内存中完成所有操作会好得多。
那么是否可以仅在内存中实例化数据库而无需向光盘写入任何内容? 我不能只使用事务,因为我想创建全新的数据库。
答案 0 :(得分:30)
使用文件名“:memory:”创建它:In-Memory Databases。
一旦与它的连接关闭,它就会不复存在。
答案 1 :(得分:2)
As an alternative to in memory databases, you can create a SQLite temporary database by using an empty string for the filename. It will be deleted when the connection is closed. The advantage over an in-memory database is your databases are not limited to available memory.
Alternatively, you can create your database in a temp file and let the operating system clean it up. This has the advantage of being accessible for inspection.
答案 2 :(得分:1)
我建议在某处安装一个tmpfs文件系统(仅限RAM文件系统)并将其用于单元测试。
正常实例化数据库文件然后使用rm将它们吹走 - 但没有任何内容进入磁盘。
(编辑:很好 - 有人打我正确的答案;)不管怎样留在这里作为另一种选择