如何压缩核心数据迁移?
How to squash core data migrations?
我有一个应用程序,我使用 Xcode 在 Mac 命令行程序中为其生成种子核心数据数据库。在 Beta 测试期间,我使用了几个模型版本。现在,对于应用程序的第一个版本,我想将版本压缩为版本 1 的一个模型。这可能吗?
我从 xcdatamodeld 文件夹中删除了旧模型版本,并将当前版本设置为初始版本。我从 pbxproj 文件中删除了对旧模型版本的引用。 无论我尝试什么,我都会收到“持久性存储迁移失败,缺少映射模型。”错误。我尝试了列出的所有内容 here,即:
- 清理项目,退出Xcode
- 从文档文件夹中删除生成的数据库
- 删除二进制文件
- 删除所有派生数据
- 运行
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
- 从
~/Library/Caches/com.apple.dt.Xcode
中删除缓存
没有任何帮助。我想知道 Xcode 从哪里可以知道旧模型...为了澄清,这是指我 运行 作为 mac 上的命令行应用程序的数据库创建工具,而不是iOS 应用本身。
我们非常感谢压缩数据库的其他方法。我正在考虑的一种替代方法是重命名数据库并从现在开始忽略旧数据库。
由于我无法弄清楚 XCode 是如何知道旧模型的,所以我开始使用不同的名称再次创建模型并调整代码中的 url。这没有问题。
编辑:我终于弄明白了 - 我的 self-built 命令行应用程序已正确安装,因此在 ~/Library/Application Support/<name of your app>/
下有自己的目录,它的三个 *.sqlite
文件所在的目录。删除它们终于摆脱了“缺少映射模型”的错误。
我有一个应用程序,我使用 Xcode 在 Mac 命令行程序中为其生成种子核心数据数据库。在 Beta 测试期间,我使用了几个模型版本。现在,对于应用程序的第一个版本,我想将版本压缩为版本 1 的一个模型。这可能吗?
我从 xcdatamodeld 文件夹中删除了旧模型版本,并将当前版本设置为初始版本。我从 pbxproj 文件中删除了对旧模型版本的引用。 无论我尝试什么,我都会收到“持久性存储迁移失败,缺少映射模型。”错误。我尝试了列出的所有内容 here,即:
- 清理项目,退出Xcode
- 从文档文件夹中删除生成的数据库
- 删除二进制文件
- 删除所有派生数据
- 运行
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
- 从
~/Library/Caches/com.apple.dt.Xcode
中删除缓存
没有任何帮助。我想知道 Xcode 从哪里可以知道旧模型...为了澄清,这是指我 运行 作为 mac 上的命令行应用程序的数据库创建工具,而不是iOS 应用本身。
我们非常感谢压缩数据库的其他方法。我正在考虑的一种替代方法是重命名数据库并从现在开始忽略旧数据库。
由于我无法弄清楚 XCode 是如何知道旧模型的,所以我开始使用不同的名称再次创建模型并调整代码中的 url。这没有问题。
编辑:我终于弄明白了 - 我的 self-built 命令行应用程序已正确安装,因此在 ~/Library/Application Support/<name of your app>/
下有自己的目录,它的三个 *.sqlite
文件所在的目录。删除它们终于摆脱了“缺少映射模型”的错误。