是否有可能在SQLite中创建内存数据库,然后通过某些查询销毁它? 我需要为单元测试我的db层做到这一点。目前,我只是通过创建普通的SQLite db文件并在所有测试完成后将其删除来工作,但全部在内存中执行会更好。 所以是否有可能仅在内存中实例化数据库而无需写入任何内容到磁盘中? 我不能仅使用事务,因为我想创建一个全新的数据库。
作为内存数据库的替代方案,您可以通过使用空字符串作为文件名来创建SQLite临时数据库。它将在连接关闭时被删除。与内存数据库相比的优点是,您的数据库不受可用内存的限制。或者,您可以在临时文件中创建数据库,并让操作系统清理它。这样做的好处是可以进行检查。
我建议在某个地方挂载tmpfs文件系统(仅限RAM文件系统),并将其用于单元测试。像平常一样实例化DB文件,然后使用rm删除它们 - 但是没有任何东西写入磁盘。(编辑:不错 - 有人比我更快给出了正确的答案 ;) 尽管如此,我还是把这个选项留在这里)