【问题标题】:How to use Cayley with a Postgres backend?如何将 Cayley 与 Postgres 后端一起使用?
【发布时间】:2015-11-17 23:33:34
【问题描述】:

根据this Github issue,实现了Cayley 图形数据库的Postgres 后端功能。但是,目前docs中没有示例,我无法通过阅读代码来弄清楚。有人可以帮忙吗?

编辑

要开始玩 Cayley,我们可以使用以下命令加载源附带的数据:

./cayley load --config=cayley.cfg.overview --quads=data/30kmoviedata.nq.gz

我尝试了cayley.cfg.overview 文件的两种变体:

{
    "database": "sql",
    "db_path": "localhost:5432",
    "read_only": false
}

和

{
    "database": "sql",
    "db_path": "/var/lib/postgresql/9.4/main/cayley",
    "read_only": false
}

第一个类似于 mongo 使用的那个(5432 是 postgres 服务器正在侦听的端口)。至于第二个,我不知道我在那里做什么:D。

无论如何,当我使用./cayley load --config=cayley.cfg.overview --quads=data/30kmoviedata.nq.gz 命令时,我会收到以下错误(仅改变db_path 的值):

Couldn't open database at localhost:5432: 
&errors.errorString{s:"missing \"=\" after \"127.0.0.1:5432\" in connection 
info string\""}
E1117 21:09:18.300033 16689 cayley.go:277] missing "=" after "localhost:5432" 
in connection info string"

【问题讨论】:

  • 您能否发布您现在拥有的内容并提供有关您面临的错误的更具体信息?将每个特定错误作为一个问题提出可能更具建设性,因为配置系统可能是非常开放的(即您卡在错误 A 上并解决它以找到错误 B,然后得到错误 C 等等)。跨度>
  • @evanmcdonnal 我提供了更多细节。
  • 您可以尝试使用 localhost:5432 配置但使用 "database":"mongo" 吗?在大多数示例中,文档中的值是leveldb,其中一个值是mongo,但据我所知,没有sql 值。在我的其他工作之间,我将追踪该文件 (caylay.go) 并查看那里发生了什么,因为错误表明应该有一个尾随等于,但我没有看到任何远程相似的示例(不像它是一个 sql 连接字符串,之后有凭据等)。
  • 找到了我正在寻找的部分内容。你在这里失败了,对Load 的调用会返回错误github.com/google/cayley/blob/master/cmd/cayley/cayley.go#L209
  • @evanmcdonnal 使用带有 "database": "mongo" 的配置,如果用于 mongodb 后端。 database 有一个 sql 值(请参阅 source),但它没有记录在案,我还没有弄清楚。

标签: postgresql go cayley


【解决方案1】:

看起来 Cayley 在幕后使用 lib/pq。 lib/pq 连接字符串如下所示:"user=pqgotest dbname=pqgotest sslmode=verify-full" 或 "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full" 有关详细信息,请参阅godoc.org 上的 lib/pq 文档。

(您可以在 cayley/graph/sql/quadstore.go connectSQLTables 中查看 sql.Open 调用的位置。)

【讨论】:

  • 查了godocs后得到了,谢谢!在那之后,我遇到了一个错误,上面写着db: failed to load data: pq: relation "quads" does not exist,我通过根据github.com/google/cayley/blob/master/graph/sql/quadstore.go 找到的查询创建一个表quads 来解决这个问题。之后,我设法加载了数据。
猜你喜欢
  • 2015-02-25
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 2010-12-04
  • 2018-07-08
  • 1970-01-01
  • 2011-05-20
  • 2015-06-05
相关资源
最近更新 更多