我正在使用 React Native 构建一个小型应用程序并想使用Realm http://www.realm.io为了坚持。
我定义了以下架构Person
:
const personSchema = {
name: 'Person',
properties: {
familyName: {type: 'string', optional: true},
givenName: {type: 'string'},
middleName: {type: 'string', optional: true},
emailAddresses: {type: 'list', objectType: 'string'},
}
}
export class Person {}
Person.schema = personSchema
有关如何定义领域模式的信息可以在领域文档 https://realm.io/docs/react-native/latest/.
然后我像这样实例化数据库:
const schemas = [Person]
const db = new Realm({schema: schemas})
但是,到达最后一行时出现异常,出现以下错误:
未处理的 JS 异常:由于以下原因需要迁移
错误:
- 目标类型
string
不存在财产emailAddresses
.
我正在使用 iOS 模拟器进行测试,并多次删除该应用程序,然后使用 Xcode 中的播放按钮重新安装它。
有谁知道为什么我会得到这个例外?
Update
我现在为另一个数据库对象创建了一个单独的架构:EmailAdress
const emailAddressSchema = {
name: 'EmailAddress',
properties: {
label: 'string',
email: 'string'
}
}
export class EmailAddress {}
EmailAddress.schema = emailAddressSchema
我也改变了objectType
of emailAddresses
in the personSchema
属于类型EmailAddress
now:
...
emailAddresses: {type: 'list', objectType: 'EmailAddress'},
...
现在,我不再遇到异常了。是否可以向作为列表的 Realm 类添加属性string
s?