我已经能够找到的唯一的文档.backup和.dump是所示的.help:
.backup ?DB? FILE Backup DB (default "main") to FILE
.dump ?TABLE? ... Dump the database in an SQL text format
If TABLE specified, only dump tables matching
LIKE pattern TABLE.
Run Code Online (Sandbox Code Playgroud)
最大的问题是:在复制/转储之前,这两个命令是否都锁定了数据库?备份是否一致?
这个答案有一些关于 的信息.backup,但是否有任何权威文档?(还有呢.dump?)我在 SQLite 的文档中唯一能找到的是“在线备份 API ”,但我对 API 不感兴趣,我只想备份数据库。
我有一个应用程序,它使用QSQLITE驱动程序和本地文件系统上的文件上的QSqlDatabse.我想写一个备份函数,它将保存数据库的快照.
简单地复制文件似乎是一种明显,简单的方法,但我不确定何时这样做是安全的.
应用程序在定义明确的点修改数据库.每次都会创建,使用并立即销毁新的QSqlQuery对象.显式锁定/刷新是一种可接受的解决方案,但Qt API似乎没有公开这一点.
我在Qt将数据库提交到磁盘时找不到任何文档.我想QSqlDatabase析构函数会这样做,但即便如此,我也不知道(在Windows或Linux上)复制文件是否保证会导致最近的更改被复制(而不是仅仅是那些更改)已在文件系统期刊中定稿).有人可以确认或否认吗?如果在执行复制之前关闭写文件句柄会有什么不同吗?
也许唯一安全的方法是进行在线复制,但我已经在使用Qt API而不知道这将如何互动.
任何意见,将不胜感激.