领域多数据库问题
Realm multiple database problems
本地有两个数据库,'user.realm'和'person.realm'。 'User' 模型需要保存在 'user.realm' 中。 'Person'模型需要保存在'person.realm'中,当使用下面的代码时,'User'和'Person'tables是在'user.realm'中创建的。我需要 'User' 模型只保存到 'user.realm'。
class User:Object {
@objc dynamic var id:Int = 0
@objc dynamic var name:String = ""
}
class Person:Object {
@objc dynamic var id:Int = 0
objc dynamic var name:String = ""
}
//create "user.realm"
var config = Realm.Configuration()
config.fileURL = dataPath.appendingPathComponent("user.realm")
Realm.Configuration.defaultConfiguration = config
var realm = try! Realm()
//create "person.realm"
var config = Realm.Configuration()
config.fileURL = dataPath.appendingPathComponent("person.realm")
Realm.Configuration.defaultConfiguration = config
var realm = try! Realm()
当我执行用户数据库时,我只需要在user.realm中创建“User”table,而不是“User”和“Person”两个table在“user.realm”中一起创建,我无法删除 Person 模型,因为这样你就无法在“Person.realm”中创建“Person”table。个人觉得Realm实现起来比较麻烦
了解 Realm 的关键点之一是它不是关系数据库。虽然它有 'feel' 这是有意的,但没有这样的表,而且领域结构通常在不同的领域之间分裂。查看 Realm vs Other Databases.
在某些情况下,将类似的数据存储在同一个领域中会更有效 - 用户和人员看起来非常相似,因此将它们存储在同一个领域中可能会更好 - 我只是不知道用例这里。
不过,要回答这个问题,您可以明确告诉 Realm 在一个领域中存储什么或哪些对象。它是通过这样的配置完成的
let config = Realm.Configuration(objectTypes: [MyClass.self, MyOtherClass.self])
let realm = try! Realm(configuration: config)
那个领域将只有 MyClass 和 MyOtherClass。将其应用于您的问题
let config = Realm.Configuration(objectTypes: [UserClass.self])
let myUserRealm = try! Realm(configuration: config)
其中只有一种对象类型,用户Class。
领域文档的 Class 子集部分对此进行了介绍 Provide a subset of classes to a Realm
本地有两个数据库,'user.realm'和'person.realm'。 'User' 模型需要保存在 'user.realm' 中。 'Person'模型需要保存在'person.realm'中,当使用下面的代码时,'User'和'Person'tables是在'user.realm'中创建的。我需要 'User' 模型只保存到 'user.realm'。
class User:Object {
@objc dynamic var id:Int = 0
@objc dynamic var name:String = ""
}
class Person:Object {
@objc dynamic var id:Int = 0
objc dynamic var name:String = ""
}
//create "user.realm"
var config = Realm.Configuration()
config.fileURL = dataPath.appendingPathComponent("user.realm")
Realm.Configuration.defaultConfiguration = config
var realm = try! Realm()
//create "person.realm"
var config = Realm.Configuration()
config.fileURL = dataPath.appendingPathComponent("person.realm")
Realm.Configuration.defaultConfiguration = config
var realm = try! Realm()
当我执行用户数据库时,我只需要在user.realm中创建“User”table,而不是“User”和“Person”两个table在“user.realm”中一起创建,我无法删除 Person 模型,因为这样你就无法在“Person.realm”中创建“Person”table。个人觉得Realm实现起来比较麻烦
了解 Realm 的关键点之一是它不是关系数据库。虽然它有 'feel' 这是有意的,但没有这样的表,而且领域结构通常在不同的领域之间分裂。查看 Realm vs Other Databases.
在某些情况下,将类似的数据存储在同一个领域中会更有效 - 用户和人员看起来非常相似,因此将它们存储在同一个领域中可能会更好 - 我只是不知道用例这里。
不过,要回答这个问题,您可以明确告诉 Realm 在一个领域中存储什么或哪些对象。它是通过这样的配置完成的
let config = Realm.Configuration(objectTypes: [MyClass.self, MyOtherClass.self])
let realm = try! Realm(configuration: config)
那个领域将只有 MyClass 和 MyOtherClass。将其应用于您的问题
let config = Realm.Configuration(objectTypes: [UserClass.self])
let myUserRealm = try! Realm(configuration: config)
其中只有一种对象类型,用户Class。
领域文档的 Class 子集部分对此进行了介绍 Provide a subset of classes to a Realm