我知道复制数据库文件solutoin,
How do I backup a database file to the SD card on Android?
Android backup/restore: how to backup an internal database?
Android backup/restore: how to backup an internal database?
事实上,我正在使用这种方法备份我的数据库,直到不久前它才能完美运行。 直到一些多线程的东西让我使用enableWriteAheadLogging 现在我在数据库文件附近还有两个文件,包含.db-wal
和.db-shm
个扩展名。
仅复制数据库文件.db
不起作用,因为大多数情况下文件不包含最新的数据库提交(可用于抛出app本身)但是当我将三个文件复制在一起时它似乎工作正常(不要放弃,尽管)
正如Sqlite人士所建议的那样,备份sqlite数据库的最佳做法是使用backup api,但有人可以指导我如何在应用程序中使用此api,甚至使用sqlite {{1}来自应用内部的(How do I dump the data of some SQLite3 tables?)方法?
那么哪个是从Android应用程序备份sqlite数据库的最佳做法?
1-从沙箱中复制所有与数据库相关的文件
2-使用sqlite Backup Api
3-使用sqlite .dump
4-任何其他方法
答案 0 :(得分:1)
SQLite备份API是唯一可以与其他线程/进程的并发写访问一起正常工作的机制。这当然意味着Android数据库框架无法让您访问它。
如果您确定没有任何活动连接,则只需复制所有文件即可。 (退出日志或WAL文件会导致数据损坏。)对于WAL,-shm
文件
不包含任何永久数据,可以省略。