所以,我一直在使用MagicalRecord开发iPad应用程序,最近在搬到自动迁移商店后,我遇到了一些问题。我需要将我的.db文件从一个设备同步到另一个设备,所以我需要所有数据都在.db中,但似乎启用了WAL日记模式(Magical Record自动迁移存储的默认值)no无论我如何保存它只会将更改持久保存到.db-wal或.db-shm文件。我切换到正常的sqlite商店,一切正常。因此,我的问题是,在启用WAL日记功能的情况下,我是否需要执行任何特殊操作才能将Core Data保存到主数据库,或者我只需要禁用它?
答案 0 :(得分:4)
更改日记帐模式。毕竟,你有Magical Record source。将SQLite日记帐模式更改为DELETE
,并在每次交易后删除日记帐模式。禁用日志记录是一个非常糟糕的主意,不要这样做。但是使用不同的模式应该没问题。
一旦持久性存储打开,Core Data不提供任何用于操作日志的API。 SQLite是一个实现细节,Core Data不公开内部SQLite细节。设置核心数据堆栈时,您可以获得最接近的options
参数,您可以在此处更改日志模式(以及MR更改它的位置)。
答案 1 :(得分:0)
-wal
文件是数据库的一部分;您必须将其与.db
文件同步。
或者,您可以通过执行checkpoint将数据复制到主数据库文件。