我想在关闭数据库后立即复制一个Sqlite数据库文件,所以这是安全的还是异步的,因为close函数不会等到一切都完成?即如果在数据库关闭后使用操作系统文件操作复制db文件,是否存在损坏的风险?
我的猜测是没有问题,db的关闭确保现在可以安全地在驱动器上制作文件的副本......但我想确保,作为数据库的损坏副本将是一个巨大的头痛,可能不会发生间歇性的错误。
对db的close调用不会在我的程序中的单独线程中
答案 0 :(得分:1)
SQLite库在您的进程中运行,并且不使用线程(排序除外)。
因此可以保证在关闭后,通过此连接完成的任何操作都已完成。
但是,这不会阻止其他进程访问数据库文件。最好使用online backup API制作副本。