我发现了一个函数,可以帮助我将磁盘SQLite数据库加载到内存数据库,但是我发现我需要的模块,apsw,不支持它,而pysqlite支持。我需要apsw,因为它有我需要的大多数pysqlite不支持的函数。有没有解决办法完全复制到数据库?
nxagd54h1#
正如singularity所指出的,APSW提供了SQLite内置的备份功能。你不能继续使用游标的原因(实际上是底层的SQLite编译语句)是因为数据库模式可能已经完成了更改,因为你已经用备份覆盖了它。你可以使用close方法强制关闭项目。出于某种原因,许多开发人员似乎将游标视为珍贵的商品,并试图重用它们,并在每一个机会都保留它们。游标本身非常轻量级,只是比Python整数稍微“重”一点。底层的SQLite编译语句更重量级,但在Python对象级别,它们会在每个执行的语句之间切换。(即APSW游标指向当前执行的SQLite编译语句。)顺便说一句,apsw还包括转储数据库的能力。你可以使用shell类来为你做这项工作。http://apidoc.apsw.googlecode.com/hg/shell.html#shell-class披露:我是APSW的作者。
hwazgwia2#
检查连接.backup()函数
2条答案
按热度按时间nxagd54h1#
正如singularity所指出的,APSW提供了SQLite内置的备份功能。
你不能继续使用游标的原因(实际上是底层的SQLite编译语句)是因为数据库模式可能已经完成了更改,因为你已经用备份覆盖了它。你可以使用close方法强制关闭项目。
出于某种原因,许多开发人员似乎将游标视为珍贵的商品,并试图重用它们,并在每一个机会都保留它们。游标本身非常轻量级,只是比Python整数稍微“重”一点。底层的SQLite编译语句更重量级,但在Python对象级别,它们会在每个执行的语句之间切换。(即APSW游标指向当前执行的SQLite编译语句。)
顺便说一句,apsw还包括转储数据库的能力。你可以使用shell类来为你做这项工作。
http://apidoc.apsw.googlecode.com/hg/shell.html#shell-class
披露:我是APSW的作者。
hwazgwia2#
检查连接.backup()函数