2011-06-23 19 views
2

Futon(http://:5984/_utilsで利用可能なCouchDBのWebベースの管理者)は、CouchDBデータベースに格納されたデータに関する情報をどうにかキャッシュします。Futonはレコードを表示せず、CouchDBコンソールにすべてのレコードを表示します

私は実際にどのように、そしてなぜそれを知りません。

〜150,000レコード(サーバーのPHPスクリプト経由)で既存のデータベースをいっぱいにすると、Futonはまだ0レコードを表示します。 Futon自体でいくつかのレコードを追加すると、Futonはそれらを表示しますが、まだすべてのレコードを表示しません。

Futonはクライアントごとに異なるストレージを使用しているようです。 &を作成すると&データベース自体の名前の変更自体が両側に表示されます(Futon &コンソール)。

+2

はあなたがビューが有効になって** **すべての文書を持っていることを確認することができ、そしてません例えば:

私はこのように私の設定を変更しますゼロ行のマップ/縮小ビューですか? – JasonSmith

答えて

2

これはまったく正常な動作ではありません。毎日多くの人がふとんを使い、良い行動を期待しています。

ウェブデベロッパーであり、単にブラウザキャッシュではないと思われる場合は、正確にを調べることをおすすめします。PHPとブラウザのクエリの違いは何ですか?あなたは大きなヒントを発見する可能性が高いです。最初にCouchDBのログを見て、ブラウザとコンソールを確認することで始めることができますは同じdbをクエリします。

次に、個人的には、tcpdump、wireshark、またはCharlesプロキシを使用して、空中のビットを調べます。可能であれば、私は透明なプロキシを除外するために、サーバー上のデータを収集するのが好きです。

IMHOでは、不明瞭なFutonのバグが見つかる可能性が高く、クエリ間に不一致があると思われる確率は99%です。たとえば、別のHostヘッダーを使用すると、異なるvhost規則が適用され、完全に異なるデータベースにアクセスできます。

+0

私はFutonを使用している間、Firebugコンソールを非常に便利なツールとして提案します。 Futon活動の完全なログについては、コンソールパネルの「Persist」オプションを使用してください。 –

0

couchdbプロセス(couchdb -k; couchdb -b)をリセットするだけで、Futonを再度開いたときに失われたデータがすべて表示されます。

データベースをリセットしたが、Futonをリセットしたためではない(この問題を解決するためのコマンドがある場合は、私に知らせてテストします)。おそらくあなたのPHPスクリプトはFutonクライアントに似たインスタンスを作成し、それらはお互いの変更を承認しません(これは少なくともデータベースの作成とドキュメントの追加の場合です)。

私のアプリケーションをWebサーバーに置くと、この問題が発生することに注意してください。これが当てはまる場合、私のアプリケーションからの呼び出しは127.0.0.1(/etc/couchdb/local.iniのbind_address = 0.0.0.0)から来ているように見えますが、Futonからの呼び出しは公開されているようです。私が現地で開発していたときには、この問題は一度もありません

0

私の場合、Nginx設定セクションproxy_buffersなぜFutonにデータが表示されませんでした。

proxy_buffers 4 1024k; 
proxy_buffer_size 1024k; 
関連する問題