如何使用epgsql驱动程序连接到Erlang中的PostgreSQL?

如何使用epgsql驱动程序连接到Erlang中的PostgreSQL?,postgresql,erlang,Postgresql,Erlang,我想访问Erlang中的PostgreSQL数据库。我下载了驱动程序,它是一些目录和文件,但我不知道如何使用它 如何编写Erlang程序并使用epgsql驱动程序访问PostgreSQL数据库 我创建了一个新文件夹,并将所有文件从驱动程序中的src/和pgsql.hrl复制到我的新文件夹中。然后我创建了一个简单的测试程序: -module(dbtest). -export([dbquery/0]). dbquery() -> {ok,C} = pgsql:connect("loc

我想访问Erlang中的PostgreSQL数据库。我下载了驱动程序,它是一些目录和文件,但我不知道如何使用它

如何编写Erlang程序并使用epgsql驱动程序访问PostgreSQL数据库

我创建了一个新文件夹,并将所有文件从驱动程序中的
src/
pgsql.hrl
复制到我的新文件夹中。然后我创建了一个简单的测试程序:

-module(dbtest).
-export([dbquery/0]).

dbquery() ->
    {ok,C} = pgsql:connect("localhost", "postgres", "mypassword",
                                     [{database, "mydatabase"}]),
    {ok, Cols, Rows} = pgsql:equery(C, "select * from mytable").
然后我启动了erl,并用
c(pgsql)
c(dbtest)
编译了模块。 但是当我执行
dbtest:dbquery()。

** exception error: undefined function pgsql:connect/4
     in function  dbtest:dbquery/0

关于如何使用Erlang连接到PostgreSQL数据库,有什么建议吗?

Rebar是一个很好的工具,但是,我发现了解项目的结构很好,这样当出现问题时,您就可以知道该怎么做了。尝试按以下方式组织您的项目:

/deps/epqsql/
/src/dbtest.erl
/ebin
然后将cd放入
deps/epqsql
并运行
make
来构建库

您的
dbtest.erl
文件还应明确引用库,请在顶部附近添加以下内容:

-include_lib("deps/epgsql/include/pgsql.hrl").
您可能希望在进行更改时使用编译代码的Makefile(或rebar),但是,请立即尝试编译:
erlc-I deps/epqsql/ebin-o ebin src/dbtest.erl

测试时,确保正确设置了加载路径,请尝试:
erl-pz-deps/epqsql/ebin/ebin/
。当erl控制台加载时,尝试
dbtest:dbquery()。
看看会发生什么


我的机器上没有Postgresql设置,但是,我可以通过此设置获得更合理的外观错误。

我建议使用ejabber pgsql驱动程序

这不是对您问题的直接回答,而是-阅读有关钢筋的信息。它描述了如何组织应用程序及其依赖关系。这个答案有什么关系?我得到make:rebar:Command not found make:**[compile]错误127。检查