gpt4 book ai didi

ios - 在 iOS 上备份 sqlite 数据库

转载 作者:行者123 更新时间:2023-11-29 13:11:50 24 4
gpt4 key购买 nike

我想在我的应用程序运行时备份我的应用程序的主 sqlite 数据库。

1) 我读到如果数据库已被检查点(此时 wal 文件不包含重要数据),则只复制 sqlite 文件是安全的。 [managedContext save:] 是否执行该检查点操作,或者我还需要做其他事情吗? (引用 -shm and -wal files in SQLite DB)

2) 除了拆除整个核心数据堆栈之外,有什么方法可以确保核心数据在我复制时不会尝试写入 sqlite 文件?我的应用程序确实会在任何用户输入后频繁保存,如果有某种方法可以强制该应用程序阻塞一秒钟,那就太好了。

最佳答案

我已经上传了一个示例应用程序,它以多种不同的方式提供备份和恢复功能,包括本地备份、从 iCloud 复制备份、电子邮件备份、从电子邮件导入以及通过 iTunes 复制文件。请参阅下面的链接以获取演示这些功能的视频,您可以从该网站下载示例应用。

http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/sample-apps-explanations/backup-files/

编辑

使用相同的 fileURL 创建一个新的 persistentStoreCoordinator 应该是安全的,然后在不关闭应用程序的情况下使用 migratePersistentStore API,但首先保存主 MOC。我总是使用 JOURNAL=DELETE 模式来确保我只需要使用一个文件来处理。如果您使用 WAL 模式,那么您需要备份 sqlite 使用的所有三个文件。

关于ios - 在 iOS 上备份 sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com