Futon不显示任何记录,CouchDB控制台显示所有记录

Futon不显示任何记录,CouchDB控制台显示所有记录,couchdb,Couchdb,它看起来像Futon(http://:5984/_utils上提供的基于web的CouchDB管理员)以某种方式缓存了有关CouchDB数据库中存储的数据的信息 我不知道怎么做,为什么 如果我用大约150000条记录(通过服务器上的PHP脚本)填充现有数据库,Futon仍然显示0条记录。 如果我通过Futon本身添加一些记录,Futon会显示它们,但仍然不会显示所有记录 看起来Futon在每个客户端使用不同的存储。 但数据库的创建、删除和重命名本身会出现在两侧(Futon和console)。这根

它看起来像Futon(http://:5984/_utils上提供的基于web的CouchDB管理员)以某种方式缓存了有关CouchDB数据库中存储的数据的信息

我不知道怎么做,为什么

如果我用大约150000条记录(通过服务器上的PHP脚本)填充现有数据库,Futon仍然显示0条记录。 如果我通过Futon本身添加一些记录,Futon会显示它们,但仍然不会显示所有记录

看起来Futon在每个客户端使用不同的存储。
但数据库的创建、删除和重命名本身会出现在两侧(Futon和console)。

这根本不是正常行为。许多人每天都用蒲团,期望表现良好

如果您是一名web开发人员,并且不认为它只是浏览器缓存,那么我建议您确切地研究PHP和浏览器查询之间的区别。你很可能会发现一条大线索。您只需查看CouchDB日志并确认浏览器和控制台都查询同一个db即可

接下来,我个人会使用tcpdump、wireshark或Charles代理查看空中的比特。如果可能,我喜欢在服务器上收集数据,以排除(非)透明代理


IMHO,您有1%的可能会发现一个模糊的Futon bug,99%的可能会发现查询之间存在差异。例如,使用不同的主机头将导致应用不同的vhost规则,这可以访问完全不同的数据库。

只需重置couchdb进程(couchdb-k;couchdb-b),当再次打开Futon时,您将看到所有丢失的数据

请注意,此修复程序起作用的原因不是因为您重置了数据库,而是因为您重置了Futon(如果有只重置Futon的命令,请让我知道,我将进行测试)。很可能您的PHP脚本创建了一个类似于Futon客户端的实例,它们不会相互确认更改(我发现至少在创建数据库和添加文档时是这样)

请注意,这个问题只发生在我将应用程序放入web服务器时。在这种情况下,来自Futon的调用似乎来自公共地址,而来自我的应用程序的调用似乎来自127.0.0.1(在/etc/couchdb/local.ini中,我有bind_address=0.0.0)。当我在本地开发时,我从来没有遇到过这个问题。

在我的例子中,是配置部分为什么不显示任何数据

我更改配置如下:

proxy_buffers 4 1024k;
proxy_buffer_size 1024k;

您是否可以确认您启用了“所有文档”视图,而不是例如具有零行的map/reduce视图?我建议在使用Futon时,Firebug控制台也是一个非常方便的工具。使用控制台面板中的“持久”选项查看Futon活动的完整日志。