[erlang-questions] How to access CouchDB?

Yves S. Garret <>
Fri Aug 9 21:36:21 CEST 2013


On Fri, Aug 9, 2013 at 12:57 PM, Benoit Chesneau <>wrote:

> not sure if it can help but you can use http://github.com/benoitc/couchcwhich abstract the internal couchdb api .
>
> - benoitc
>
>
> On Friday, August 9, 2013, Yves S. Garret wrote:
>
>> Hello,
>>
>> I have a small database that's running right now in CouchDB, it's called
>> sample_database.  What I'd
>> like to do is to read, create, delete, update documents and run some of
>> the views inside from an
>> Erlang app.  I looked online and found this example:
>>
>> http://www.softwarepassion.com/importing-data-to-couchdb-java-ruby-and-erlang-way/
>>
>> From that, I proceeded to make the following little script:
>> -module(test).
>>
>> -import(queue,[in/1,out/1,new/0]).
>> -export([start/0]).
>> -include("../couch_db.hrl").
>>
>> -define(ADMIN_USER_CTX, {user_ctx, #user_ctx{roles = [<<"_admin">>]}}).
>>
>> start() ->
>>   io:format("Hello world!~n~n"),
>>
>>    couch_db:open(<<"sample_database">>, [?ADMIN_USER_CTX]).
>>
>> However, when I run this, I get the following error:
>> 18> test:start().
>> Hello world!
>>
>> ** exception error: undefined function couch_db:open/2
>>
>> It's obvious I'm not including a library of some sort.  I'm curious how I
>> can connect to my little
>> database in the simplest way possible just to start with.  Has anyone
>> done this before?
>>
>
And I've spoken too soon :) .

This is the code that I currently have:

-module(test).

-import(queue,[in/1,out/1,new/0]).
-export([start/0]).
%         /opt/local/lib/couchdb/erlang/lib/couch-1.3.1/ebin
-include("/opt/local/lib/couchdb/erlang/lib/couch-1.3.1/include/couch_db.hrl").

-define(ADMIN_USER_CTX, {user_ctx, #user_ctx{roles = [<<"some_user">>]}}).

start() ->
  io:format("Hello world!~n~n"),

  couch_db:open(<<"sample_database">>, [?ADMIN_USER_CTX]).

It compiles just fine, but when I run it, this is the error that I get:
> c(test).
{ok,test}
> test:start().
Hello world!

** exception error: bad argument
     in function  ets:lookup/2
        called as ets:lookup(couch_config,{"replicator","db"})
     in call from couch_config:get/3 (couch_config.erl, line 62)
     in call from couch_server:maybe_add_sys_db_callbacks/2
(couch_server.erl, line 89)
     in call from couch_server:open/2 (couch_server.erl, line 64)
     in call from couch_db:open/2 (couch_db.erl, line 79)

I'll be digging into why this is happening.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130809/7304c361/attachment.html>


More information about the erlang-questions mailing list