我正在尝试将CouchDB用于需要对所有数据操作进行全面审核的系统。由于其内置的修正跟踪,沙发似乎是一个理想的选择。但后来我在the O'Reilly textbook中读到“CouchDB并不保证旧版本可以保留。”
我似乎无法找到关于这一点的更多文档,或者沙发如何在内部处理其修订跟踪。有没有办法在每个数据库或每个文档级别配置沙发以永久保留所有版本?如果是这样,怎么样?
答案 0 :(得分:8)
CouchDB中的修订版本不是您对它们的修改方式。它们是将更新数据附加到数据库的方式的工件,并在压缩时进行清理。这是一种常见的误解。
您需要将修订跟踪作为应用程序的架构/文档设计的一部分来实现。
答案 1 :(得分:0)
沙发正在存储所有版本,但如果您在“压缩数据库”链接上单击蒲团,则将删除所有以前的版本。因此,如果notime点击压缩数据库,我认为所有版本都将被保留:)
答案 2 :(得分:0)
删除CouchDB中以前版本的文档有两种情况:
因此,如果您不想存储大量数据(意思是太字节数),那么您可能不需要复制。无论如何,CouchDB中的master to master复制是它最重要的特性之一。磁盘上CouchDB的大小大于传统数据库,因此将来可能需要压缩。
如前所述:您需要将修订跟踪作为应用程序的架构/文档设计的一部分来实现。