【问题标题】:Changes in data model of one realm requires migration of another realm. Why?一个领域的数据模型的变化需要另一个领域的迁移。为什么?
【发布时间】:2016-07-20 13:39:50
【问题描述】:

我的应用中有两个领域数据库。

应用程序附带一个(用户只读),位于 NSBundle.MainBundle 中。 另一个是创建(为用户读取和写入)并存储在文档目录中。

但是,如果我对捆绑领域中的模型进行更改,用户创建的领域将无法正常工作并表示需要迁移。

这怎么可能?这是位于不同位置的两个不同领域。

在一个具有 3 个不同领域(存储在同一位置,但名称不同)的虚拟项目中进行一些测试后,我可以在 RealmBrowser 中看到所有类名都包含在领域文件中。他们为什么混在一起?它们不应该是独立的数据库吗?

虽然我们是主题之一: 创建多个领域文件与创建具有多个类的领域文件有什么区别?

感谢您的澄清!

问候,

埃里克

【问题讨论】:

    标签: ios swift realm


    【解决方案1】:

    默认情况下,Realm 文件将在首次访问应用程序二进制文件中定义的所有 Realm 模型时在支持文件中创建“表”。这使得最终用户使用单个 Realm 的常见情况非常简单。即使您正在使用多个领域,但您希望它们都共享同一组模型,这也很简单,并且受此默认行为支持。

    如果你想使用多个领域,每个领域都有不同的模型,你可以将模型传递给 Realm.ConfigurationobjectTypes 属性:

    let config = Realm.Configuration(objectTypes: [MyClass.self, MyOtherClass.self])
    let realm = try! Realm(configuration: config)
    

    您可以在 Realm 文档的 Class Subsets 部分阅读有关此功能的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      相关资源
      最近更新 更多