我在rails应用程序中使用couchdb
到couchrest
。当我尝试使用futon
时,它会显示一个消息框,提示bad_utf8_character_code
。如果我尝试使用Model.all
访问rails控制台中的记录,它会引发500:internal server error
, RestClient::ServerBrokeConnection: Server broke connection:
或Errno::ECONNREFUSED: Connection refused - connect(2)
任何人都可以帮助我排序此问题吗?Couchdb bad_utf8_character_code
2
A
回答
0
我遇到了这个问题。我尝试了各种curl调用来删除,修改,甚至只是查看违规文档。他们都没有工作。最后,我决定将文档一次一份地拖到本地机器上,跳过“坏”的文档,然后从本地复制到生产。
禁用应用程序(所以没有更多的记录被写入DB)
删除并重新创建本地数据库(运行在一个shell这些命令):
curl -X DELETE http://127.0.0.1:5984/mydb curl -X PUT http://127.0.0.1:5984/mydb
拉下文件从live到local使用这个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"
重新启动应用程序
相关问题
- 1. CouchDB中
- 2. Couchdb .... HttpWebRequest
- 3. CouchDB中
- 4. couchdb Max_document_size
- 5. CouchDB的芒果查询(CouchDB的2.0.1)
- 6. CouchDB入门
- 7. couchdb,禁用rereduce
- 8. Quering在CouchDB中
- 9. CouchDB复制器
- 10. CouchDB的缺点
- 11. CouchDB的 - 只有
- 12. couchDB-在视图
- 13. Couchdb在Nodejs中
- 14. 日期在couchdb
- 15. CouchDB入门
- 16. CouchDB的论坛?
- 17. CouchDB to Excel
- 18. CouchDB的重写
- 19. 使用CouchDB
- 20. Playframework Scala和CouchDB
- 21. CouchDB AJAX交互
- 22. Sinatra/CouchDB错误?
- 23. 分页在CouchDB?
- 24. Serverside - 仅限CouchDB
- 25. CouchDB中的UUID
- 26. Cassandra与Couchdb
- 27. Couchapp - 从CouchDB的
- 28. 什么是CouchDB
- 29. CouchDB vs HBase
- 30. 的CouchDB在Android