私はRubyonRailsアプリケーションでcouchdb
スルーを使用しています。couchrest
使用しようとするfuton
と、メッセージボックスが表示されてアラートが表示されますbad_utf8_character_code
。それを使用してRailsコンソールからレコードにアクセスしようとすると
Model.all
、、または
誰かがこの問題を分類するのを手伝ってくれますか?500:internal server error
RestClient::ServerBrokeConnection: Server broke connection:
Errno::ECONNREFUSED: Connection refused - connect(2)
1 に答える
0
私はこの問題に遭遇しました。問題のあるドキュメントを削除、変更、さらには表示するために、さまざまなcurl呼び出しを試しました。それらのどれも機能しませんでした。最後に、ドキュメントを一度に1つずつローカルマシンにプルダウンし、「不良」なドキュメントをスキップして、ローカルから本番環境に複製することにしました。
アプリを無効にします(これ以上レコードがデータベースに書き込まれなくなります)
ローカルデータベースを削除して再作成します(これらのコマンドをシェルで実行します)。
curl -X DELETE http://127.0.0.1:5984/mydb curl -X PUT http://127.0.0.1:5984/mydb
このrubyスクリプトを使用して、ドキュメントをライブからローカルにプルダウンします
require 'bundler' require 'json' all_docs = JSON.parse(`curl http://server.com:5984/mydb/_all_docs`) docs = all_docs['rows'] ids = docs.map{|doc| doc['id']} bad_ids = ['196ee4a2649b966b13c97672e8863c49'] good_ids = ids - bad_ids good_ids.each do |curr_id| curr_doc = JSON.parse(`curl http://server.com:5984/mydb/#{curr_id}`) curr_doc.delete('_id') curr_doc.delete('_rev') data = curr_doc.to_json.gsub("\\'", "\'").gsub('"','\"') cmd = %Q~curl -X PUT http://127.0.0.1:5984/mydb/#{curr_id} -d "#{data}"~ puts cmd `#{cmd}` end
本番データベースを破棄(削除)して再作成します(これは布団で行いました)
複製する
curl -X POST http://127.0.0.1:5984/_replicate -d '{"target":"http://server.com:5984/mydb", "source":"http://127.0.0.1:5984/mydb"}' -H "Content-Type: application/json"
アプリを再起動します
于 2012-03-05T22:44:17.550 に答える