2016-02-01 29 views
2

我在内存中使用SQLite数据与我的Laravel应用程序进行测试。如何使用laravel从内存中的磁盘文件导入SQLite数据库?

'database' => ':memory:' 

我需要的是运行测试之前 - 从现有的SQLite数据库文件(不能用播种机,因为有太多的数据已经)导入一些特定的数据。 如何在运行测试之前将数据从磁盘文件导入到内存中?

+0

因为您需要执行此操作的[备份API](https://www.sqlite.org/backup.html)不适用于PHP,所以您至少不能使用PHP。 – Bogdan

回答

0

如果磁盘上有数据库,则无需将内存保留在内存中。

当您第一次从磁盘读取数据库时,它将最终放到您的操作系统为您保留的磁盘缓存中。所以实际上,当您读取一次数据库时,数据库将驻留在内存中。

+0

您能否提供一些参考资料(可能来自文档或源代码),展示**整个数据库**如何加载到内存中,因为从性能的角度来看,这听起来像是一种极不可能的方法(特别是在数据库非常大)。据我所知,在读取数据库时涉及页面缓存,但它受配置值的限制,并为此设置较大的值可能不是从配置的角度看的一种好方法。 – Bogdan

+0

如果数据库应该是一个内存数据库,那么数据库开始时并不是很大。 既然是Sqlite数据库,它也不是很大。 – opentokix

相关问题