【问题标题】:Generate sqlite from json using python created sqlite-shm and sqlite-wal files使用 python 创建的 sqlite-shm 和 sqlite-wal 文件从 json 生成 sqlite
【发布时间】:2013-11-01 13:40:56
【问题描述】:

我试图从一个 json 文件填充我的 iOS sqlite 数据库。我已经使用 python 编写了一个脚本来执行此操作,它读取 json 文件和 coredata Model.xcdatamodeld 文件。使用 mogenerator 创建必要的 h 和 m 文件,并将信息写入 sqlite 文件,如下所示(以下是生成 sqlite 文件的部分代码)

psc = NSPersistentStoreCoordinator.alloc().initWithManagedObjectModel_(mom)
psc_option = {
    NSMigratePersistentStoresAutomaticallyOption : True,
    NSInferMappingModelAutomaticallyOption : True,
}
psc.addPersistentStoreWithType_configuration_URL_options_error_(NSSQLiteStoreType, None, dataURL, psc_option, None)
moc = NSManagedObjectContext.new()
moc.setPersistentStoreCoordinator_(psc)

以前一切正常,但在我升级到 Maverick 后,输出文件生成了 2 个附加文件(.sqlite-shm 和 .sqlite-wal)。并且输出的 sqlite 文件似乎是空的(即使脚本成功解释了 coredata 文件和 json 文件)。我只是想知道是否有人知道这些文件是什么?以及有关可能导致此问题的任何建议? (我怀疑某些行为在保存过程中一定发生了变化,但我不确定)。

【问题讨论】:

    标签: sqlite core-data python-2.7 mogenerator


    【解决方案1】:

    Apple 已将默认日志模式更改为 WAL 模式 (SQLite Write-Ahead Logging),如 Core Data and iOS 7: Different behavior of persistent store 中所述

    passing the associated SQLite pragma options to NSPersistentStoreCordinator.完成 寻找Configuring a SQLite Store’s Save Behavior

    或者,也许这篇网络文章可能更清楚: Problems with Core Data Migration Manager and journal_mode WAL

    【讨论】:

    • 知道如何改回来吗?我只是想让代码运行,我并不关心性能......
    • 我添加了更多资源。
    猜你喜欢
    • 2015-08-20
    • 2014-02-10
    • 2021-11-13
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多