1
如何重命名现有的couchbase lite数据库(我想避免创建一个新的数据库,并且如果可能的话需要复制内容)。这是否与复制到本地具有相同名称的数据库相同?Couchbase lite重命名数据库
如何重命名现有的couchbase lite数据库(我想避免创建一个新的数据库,并且如果可能的话需要复制内容)。这是否与复制到本地具有相同名称的数据库相同?Couchbase lite重命名数据库
由于您使用CBLReplication类将您的本地数据库映射到远程couchbase存储桶,因此我无法看到为什么重命名数据库不应该起作用。
只要确保你首先关闭您的CBLDatabase:
database.close()
和使用的NSFileManager为你喜欢的数据库mydb.cblite
从CBLManager.sharedInstance().directory
中移动:
let databaseManager = CBLManager.sharedInstance()
let fileManager = NSFileManager.defaultManager()
let sourceName = "\(database.name).cblite"
let targetName = "my-new-name.cblite"
if let sourcePath = NSURL(databaseManager.directory,isDirectory:true).URLbyAppendingURLComponent(sourceName).path,
let targetPath = NSURL(databaseManager.directory,isDirectory:true).URLbyAppendingURLComponent(targetName).path{
fileManager.moveItemAtPath(sourcePath,atPath: targetPath)
}
而且事后重新打开该连接与之前设置相同的CBLReplication
数据库:
let database = databaseManager.databaseNamed("my-new-name")
请记住,您也可以先移动mydb attachments
目录。并重新打开连接后,确保所有的代码使用新的参考查询等。
PS:这里使用的代码是从内存写入,所以它可能无法复制1:1 - 但你应该得到理念。