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 - 但你應該得到理念。