我正在 Android 手机上运行一个小而关键的应用程序。它使用 sqlite 数据库作为其主要数据存储。经过一年多近乎完美的运行后,几天前由于臭名昭著的“数据库磁盘镜像格式错误”问题,它突然在临界点崩溃。这引起了一些尴尬,因为我有几个小时无法访问系统来修复它。
我知道这种情况应该是 very rare .但我现在正在编写一些代码以更优雅地从这种情况中恢复,因为我不能再发生这种情况(这可能是由于手机的硬件,在这种情况下它现在可能会开始发生更多经常 - 但我再次承受不起崩溃)。
但是,为了测试我的恢复代码,我需要生成相同的错误,由于一个愚蠢的错误,我丢失了导致问题的数据库副本。
我的问题是 - 我可以对 sqlite 数据库做些什么来导致“数据库磁盘镜像格式错误”错误吗?然后我可以测试我的恢复代码。
最佳答案
SQLite 文档有一篇名为 How To Corrupt an SQLite Database File 的文章
SQLite database files are ordinary disk files. That means that any process can open the file and overwrite it with garbage. There is nothing that the SQLite library can do to defend against this.
如果你往文件中写入垃圾数据,我猜你可以达到你想要的效果
关于android - 我可以故意破坏 sqlite3 数据库进行测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26966905/