核心数据迁移 – 表已经存在

我有一个现有的iPad应用程序,我刚刚添加了核心数据版本。 我已经阅读了文档,并按照详细步骤进行操作。 现在选择我的新模型作为当前版本化模型并尝试从xCode在我的开发设备上运行它后,我收到以下错误:

2012-03-28 07:35:42.137 DocsOnTap [2603:707] CoreData:错误:(1)/ var / mobile / Applications / 06EECF01-3598-4513-8A3A-BE4FD49EEBF6 / Documents /中数据库的I / O错误。 DocsOnTap.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3。 SQLite错误代码:1,’表Z_2TAG已存在’

我对模型进行的唯一更改是添加一个新实体。 我的模型中有一个名为Tag的表 – 这似乎是错误所指的内容。

如果我将当前版本化的模型还原回以前的模型版本,那么我可以在Xcode上从我的开发设备上运行我的应用程序而不会出错。

我已经读过在尝试在开发设备上使用核心数据迁移时可能会遇到问题。 但是,我只是想测试一下这个过程,以确保当我们在Appstore中更新我们的应用程序时,迁移按照预期为我们的客户工作。

在我的情况下,由于重命名ID而出现相同的错误,该错误是在实体的数据模型检查器中设置的。 删除重命名ID后 ,问题就消失了。

这是一个不起眼的错误。 我添加的实体名为AppKeys – 这必须是核心数据或SQL Lite内部使用的实体的名称。 我回过头来发现我可以毫无问题地添加和迁移其他属性和实体。 但是,如果我再次尝试添加名为AppKeys的实体,那么我得到了同样的错误,即“表Z_2TAG已经存在”。 所以我的问题的解决方案是选择另一个实体名称。 遗憾的是,这没有在某个明显的地方记录 – 或者错误没有帮助。 无论如何,希望有一天这可能只会帮助别人。