我正在做一个需要同时支持python2.5和2.6的项目,并且使用sqlite3。我希望能够从程序内备份数据库。在
似乎有两种方法可以做到这一点:在sqlite3中创建一个新数据库并移动所有数据,或者简单地将数据库文件复制到驱动器上。在
我的直觉(也是我想在这里测试的部分内容)是在系统内复制数据更安全,因为这样可以确保我不会试图在不稳定的状态下复制文件。虽然我可以防止许多基本错误,但在复制文件时防止所有可能的错误将是一个挑战。在
但是,由于我支持Python2.5,因此我无法使用iterdump(),因此在程序中创建备份将非常耗时(这使得文件副本非常诱人)。在
直接复制文件的优缺点是什么?在2.5中,有没有一种简单的方法可以像2.6中的iterdump()那样复制所有数据库?在
复制当前正在使用的SQLite3文件可能在99%的时间内有效,but it's not safe,这是我很难理解的。我的意思是,你实际上可以复制DB文件本身,但是你必须绝对确定DB文件的所有文件句柄都是关闭的,否则你就要冒你所担心的情况的风险。在
有两种选择:
这很好,因为它将数据库转储到一个包含一组SQL语句的文件中,这些语句将从头开始为您重建数据库,并使用gzip在一个步骤中压缩它。然后备份生成的.gz文件的副本,就完成了。在
我在黑暗中尝试,不了解Python,但熟悉SQLite3。在
专业人士
iterdump()
函数。在缺点
相关问题 更多 >
编程相关推荐