2009-08-21 14 views
2

我想設置一個rake任務來使用fixtures數據填充我的CouchDB,並且必須先刪除數據庫中的數據。使用MySQL的整個過程的一個很好的例子可以找到here。這方面的例子包括以下部分刪除MySQL數據庫模型的數據:基於模型的Rails中的CouchDB數據刪除

# the list of models (pluralized) you want to import, in order 
models = ['Cities','Neighborhoods','Shops','Reviews'] 

# truncate existing tables 
models.reverse.each { |model| ActiveRecord::Base.connection.execute("truncate table #{model.underscore}") } 

什麼是對CouchDB的等價?我是否必須採取完全不同的方法,因爲針對關係數據庫設置的這個概念不能應用於面向文檔的數據庫?

非常感謝提前!

回答

1

沒有表和模式,所以沒有任何截斷。您應該刪除文件。但是不可能執行諸如「刪除」之類的操作,因此您應該檢索文檔,然後使用HTTP Bulk Document API刪除它們。

我想你需要這樣的開發環境,所以不應該有很多文檔,這種解決方案將是可以接受的。

此外,您可以獲得第一堆文檔,批量刪除,然後獲得另一堆文檔等...重複每個模型。我希望有所幫助。

0

我認爲擺脫數據庫中所有文檔的最簡單方法就是刪除數據庫然後重新創建它。這能解決你的問題嗎?您可能希望擁有設計文檔的脫機副本,以便在重新創建後將其重新放回。

我不知道從CouchDB數據庫批量刪除文件的任何方式。

啊 - 所以你想只刪除屬於一個特定模型的文件?在這種情況下,我認爲您必須遍歷視圖(迭代屬於該模型或_all_docs的文檔的特定視圖)並一次刪除一個文檔。

+0

對不起,但我認爲這不是真正有用/正確的。 – konrad 2009-08-25 16:55:23

+0

好的...我誤解了你的問題嗎?如果沒有,爲什麼你認爲我錯了? – djc 2009-08-25 19:38:20