2011-07-26 6 views
0

私は、CouchDBをメインデータベースとして使用するアプリケーションを実行している実動サーバーを持っています。 CouchDBインスタンスを備えたステージングサーバーをセットアップして、プロダクションインスタンスに常に同期してクリーンコピーを取得できるようにしたいと考えています。couchdbでステージングセットアップ

単純な解決策は、単にステージングサーバーが運用サーバーのデータベースを継続的にレプリケートして使用することです。問題は、ステージングサーバーのテスト中に、データベースを変更することがあることです。

私は、データベースを毎回削除して本番から再複製することが正しく機能します。しかし、毎回ゼロから始めなければならないのであれば、これは明らかに長い時間がかかります。

私は次のような解決策を探しています:1)ステージングサーバー上の本番データベースの元のコピーを保持しています。常に見直しを行います。2)インデックスを含むすべてのdbファイルをdb他の3)それを使用し、それが終了したらそれを吹き飛ばす。

誰もこのようなことを試したことがありますか?dbファイルのコピーと名前の変更はスムーズに機能しますか?もしそうなら、どんなファイルをコピーする必要があり、コピーする必要はありませんか?

答えて

2

あなたのアプローチは私が推奨するものです。 DBとインデックスファイルを新しい名前にコピーすると、正常に動作します。

database_dirview_index_dirの自分の価値観のためのチェック/_config/couchdb、その後

cd $database_dir 
cp live_replica.couch local_copy_to_mess_with.couch 

cd $view_index_dir # most likely the same dir 
cp -r .live_replica_design .local_copy_to_mess_with_design 

は、例えば、これらのディレクトリ内の他のすべてのファイルの所有者として、これらのコマンドを実行することを確認しますcouchbase、またはそれ以外の場合は、作成したファイルを使用する権限がcouchdbに与えられません。正しいオーナーとグループはls -alRで確認できます。

+0

ありがとうございました。私はファイルをコピーするのと同じくらい簡単だとうれしいです。 –

+1

私はこれを試してみましたが、私は{"error": "kill"、 "reason": "{gen_server、call、\ n [couch_server、\ n {\" cchq-staging \ ">>、\ n \ n無限大]}} –

+0

httpにアクセスするときは、[{user_ctx、\ n {user_ctx、<<\"admin\">>、\ n [<<\"_admin\">>]、\ n << \ "{couch_httpd_auth、default_authentication_handler} :// admin:****** @ localhost:5984/{copied_db /。元のデータベースにアクセスすると動作します。私はこれを既存の{copied_db}の有無にかかわらず試してみましたが、結果は同じです。他のファイルをコピーする必要がありますか? –