I have had a frustrating time creating views in CouchDB using curl. Executing following command I would get
$ curl -s -X PUT -H "text/plain;charset=utf-8" -d cronview.json http://localhost:5984/cronologger/_design/cronview
{"error":"bad_request","reason":"invalid UTF-8 JSON"}
I checked and rechecked JSON, used the same JSON using CouchDB’s Futon to no avail. Finally I found the answer here
The -d
option of curl expects the actual data as the argument!
If you want to provide the data in a file, you need to prefix it with @
:
<code>curl -X PUT -d @keys.json $CDB/_design/id
</code>