看起来Futon(基于网络的CouchDB管理员可以在http://:5984 / _utils上找到)以某种方式缓存有关存储在CouchDB数据库中的数据的信息。
我实际上并不知道如何以及为什么。
如果我用~150 000条记录(通过服务器上的PHP脚本)填满现有数据库,则Futon仍会显示0条记录。 如果我通过Futon本身添加一些记录,Futon会显示它们,但仍然没有显示所有记录。
看起来Futon每个客户端使用不同的存储空间。 但是创造&删除&数据库本身的重命名显示在双方(被褥和控制台)。
答案 0 :(得分:2)
这根本不是正常行为。很多人每天都使用被褥,期待良好的行为。
如果您是网站开发人员并且您认为它不仅仅是浏览器缓存,那么我建议您仔细研究 PHP与浏览器查询之间的区别。你可能会发现一个很大的线索。您可以首先查看CouchDB日志并确认浏览器和控制台两者查询相同的数据库。
接下来,我个人会看到空中的位,使用tcpdump,wireshark或Charles代理。如果可能,我喜欢在服务器上收集数据,以排除(不)透明代理。
恕我直言,你有1%的人会发现一个模糊的被褥虫,99%的人可能会发现这些查询之间存在差异。例如,使用不同的Host
标头将导致应用不同的vhost规则,这可以访问完全不同的数据库。
答案 1 :(得分:0)
只需重置couchdb进程(couchdb -k; couchdb -b),当你再次打开Futon时,你会看到所有丢失的数据。
请注意,此修复工作的原因不是因为您重置了数据库,而是因为您重置了被褥(如果有一个命令只是为了重置被褥请告诉我,我会测试)。很可能你的PHP脚本创建了一个类似于Futon客户端的实例,他们不会相互确认彼此的变化(我发现这至少是创建数据库和添加文档的情况)。
请注意,当我将我的应用程序放入Web服务器时,这个问题才发生在我身上。在这种情况下,来自Futon的调用似乎来自公共地址,而来自我的应用程序的调用似乎来自127.0.0.1(在/etc/couchdb/local.ini中,我有bind_address = 0.0.0.0)。当我在当地开发时,我从未遇到过这个问题。
答案 2 :(得分:0)
在我的情况下,Nginx配置部分proxy_buffers为什么Futon不显示任何数据。
我改变了我的配置:
<script src="https://unpkg.com/@reactivex/rxjs@5.0.3/dist/global/Rx.js"></script>