Couchbase lite重命名数据库

Couchbase lite重命名数据库,couchbase,couchbase-lite,Couchbase,Couchbase Lite,如何重命名现有的couchbase lite数据库(如果可能,我希望避免创建新的数据库和复制内容)。这与在本地复制到具有相同名称的数据库相同吗?由于您使用CBLReplication类将本地数据库映射到远程couchbase bucket,因此我看不出重命名数据库不起作用的任何原因 只需确保先关闭CBL数据库: database.close() 并使用NSFileManager从CBLManager.sharedInstance()目录中移动数据库mydb.cblite,如您所愿: let d

如何重命名现有的couchbase lite数据库(如果可能,我希望避免创建新的数据库和复制内容)。这与在本地复制到具有相同名称的数据库相同吗?

由于您使用CBLReplication类将本地数据库映射到远程couchbase bucket,因此我看不出重命名数据库不起作用的任何原因

只需确保先关闭CBL数据库:

database.close()
并使用NSFileManager从
CBLManager.sharedInstance()目录中移动数据库
mydb.cblite
,如您所愿:

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附件
目录。重新打开连接后,确保所有代码都使用新引用进行查询等

PS:这里使用的代码是从内存中编写的,所以它可能无法以1:1的比例复制-但你应该明白这一点