2

我想设置一个 rake 任务来用夹具数据填充我的 CouchDB,并且必须首先删除数据库中的数据。可以在此处找到使用 MySQL 的整个过程的一个很好的示例。该示例包含以下部分,用于删除 MySQL 数据库中模型的数据:

# 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 的等价物是什么?我是否必须采取完全不同的方法,因为为关系数据库设置的这个概念不能应用于面向文档的数据库?

提前谢谢了!

4

2 回答 2

1

没有表和模式,所以没有什么可以截断的。您应该删除文档。但是不可能执行“删除”之类的操作,因此您应该检索文档,然后使用HTTP Bulk Document API删除它们。

我想你需要开发环境,所以不应该有很多文档,这个解决方案是可以接受的。

您还可以获取第一批文档,批量删除,然后获取另一批文档,等等......对每个模型重复。我希望这会有所帮助。

于 2009-08-26T12:22:11.657 回答
0

我认为摆脱数据库中所有文档的最简单方法是删除数据库然后重新创建它。这能解决你的问题吗?您可能希望获得设计文档的离线副本,以便在重新创建后将其放回原处。

我不知道有任何方法可以从 CouchDB 数据库中批量删除文档。

啊——所以你只想删除属于一个特定模型的文档?在这种情况下,我认为您必须遍历一个视图(遍历属于该模型的文档或_all_docs 的特定视图)并一次删除一个文档。

于 2009-08-25T08:29:23.633 回答