我遇到了CouchDB 1.1.0的問題。我在筆記本電腦中創建了一個數據庫並將其複製到我的服務器。然後,我將附件添加到本地數據庫並將它們複製到遠程數據庫。CouchDB中的鬼附件
在第二次複製時,似乎出現錯誤。附件上傳正確,但我無法將它們附加到文檔上。
如果我檢查數據庫的大小,他們在這裏。但我無法得到它們,也無法刪除它們。 (清理數據庫不要刪除它們)。
當從遠程複製到另一個數據庫時,我仍然複製了「鬼附件」。
有沒有人有任何想法呢?我怎樣才能刪除這些附件?
我遇到了CouchDB 1.1.0的問題。我在筆記本電腦中創建了一個數據庫並將其複製到我的服務器。然後,我將附件添加到本地數據庫並將它們複製到遠程數據庫。CouchDB中的鬼附件
在第二次複製時,似乎出現錯誤。附件上傳正確,但我無法將它們附加到文檔上。
如果我檢查數據庫的大小,他們在這裏。但我無法得到它們,也無法刪除它們。 (清理數據庫不要刪除它們)。
當從遠程複製到另一個數據庫時,我仍然複製了「鬼附件」。
有沒有人有任何想法呢?我怎樣才能刪除這些附件?
也許你有一個文件衝突。
與軍事衝突或道德衝突不同,CouchDB conflict是正常且有用的,通常在複製後發生。 (衝突有點類似於Git,Mercurial或Bzr中的分支)。
在複製期間,CouchDB有時會接收同一文檔的替代版本。在這種情況下,CouchDB會替換一個修訂版本,然後同時存儲這兩個版本。不幸的是,當你查詢CouchDB來獲取該文檔時,它必須決定發送哪一個;基本上它只是選擇一個修訂版本併發送它。使用正常的GET /db/doc_id
查詢,您甚至不會意識到「衝突」(替代)版本隱藏在某處的數據庫中。上述
的鏈接顯示如何查找和解決衝突(當你刪除不想要的版本,其餘版本將是可見的。)最關鍵的例子是找到衝突的觀點:
function(doc) {
// Map function in a CouchDB view to find conflicts.
if(doc._conflicts) {
emit(doc._conflicts, null);
}
}
如果查詢那種看法,我想你會看到一些衝突。如果視圖返回0行,那麼這根本就不是問題,我們將不得不考慮你的問題。
對,我有衝突。感謝傑森
如果有人需要有關衝突的詳細信息,只是
http://guide.couchdb.org/draft/conflicts.html
我剛剛創建了一個小節點腳本獲得通過視圖所有衝突並將其刪除。