2つのcouchdbサーバー間で複製できないため、1つのサーバーからファイルにダンプし、ファイルから他のサーバーにロードします。
私はこのステートメントをダンプに使用しましたが、うまくいきました:
curl -X GET http://localhost:5984/<DATABASE_NAME>/_all_docs?include_docs=true > FILE.txt
しかし、このステートメントを使用してロードした場合:
curl -d @FILE.txt -H “Content-Type: application/json” -X POST http://localhost:5984/<DATABASE_NAME>/_bulk_docs
次のように失敗しました:
curl: (6) Could not resolve Host: application; Host not found {"error":"bad_content_type","reason":"Content-Type must be application/json"}
何か案は?
すでに述べたように、"
ではなく“
の引数として-H
オプション
LinuxまたはMacOSXユーザーの場合は、基本的にbashシェルで機能する couchdb-dump ツールを使用できます。
http://wiki.Apache.org/couchdb/HTTP_Bulk_Document_API の要求に応じてフォーマットされたローカルファイル(ASCIIテキストファイル)にデータベースをダンプします。
次に、ドキュメントの一括アップロードまたはパッケージに含まれているcouchdb-dump復元ツールを使用して、ファイルを復元できます。
これはツールへのリンクです: https://github.com/animamea/couchdb-dump
しかし、他のツールも見つけることができます:
次のコマンドラインを使用して、curlコマンドの出力を_bulk_docs
には以下が必要です:
curl -X GET 'http://localhost:5984/mydatabase/_all_docs?include_docs=true' | jq '{"docs": [.rows[].doc]}' | jq 'del(.docs[]._rev)' > db.json
jq は、非常に便利な(つまり、この状況で)優れたコマンドラインプロセッサの名前です。
それが役に立てば幸い。
実際のエラーの理由は、“
プレーンではなくASCII "
あなたの周り-H
コマンドラインの引数。
ただし、ここでの実際の解決策は、<DATABASE_NAME>.couch
ファイルの/path/to/var/lib/couchdb
あるサーバーから別のサーバーへのディレクトリ。
別の解決策として、couchdb-load
およびcouchdb-dump
ユーティリティ couchdb-python プロジェクトから。
PouchDBチームのNolanは、優れたツールをいくつか作成しています。これらは、CouchDB(添付ファイルを含む)からダンプおよびロードするのに適しています。
ダンプ/バックアップ:
https://github.com/nolanlawson/pouchdb-dump-cli
ロード/復元: