As per this Github issue, the Postgres backend feature for the Cayley graph database is implemented. However, currently there aren't examples in the docs, and I couldn't figure it out by reading the code. Could someone help?
Edit
To start playing with Cayley, we can load data that comes with the source with the following command:
./cayley load --config=cayley.cfg.overview --quads=data/30kmoviedata.nq.gz
I tried two variations of the cayley.cfg.overview
file:
{
"database": "sql",
"db_path": "localhost:5432",
"read_only": false
}
and
{
"database": "sql",
"db_path": "/var/lib/postgresql/9.4/main/cayley",
"read_only": false
}
The first one being analogous to the one used with mongo (5432 being the port at which the postgres server is listening). As for the second one, I have no clue of what I'm doing there :D.
In any case, when I use the ./cayley load --config=cayley.cfg.overview --quads=data/30kmoviedata.nq.gz
command I get the following error (varying only the value of 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"
It looks like Cayley is using lib/pq under the covers. lib/pq connection strings look something like this: "user=pqgotest dbname=pqgotest sslmode=verify-full"
or "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full"
For full details see the lib/pq documentation at godoc.org.
(You can see where the sql.Open call is made in cayley/graph/sql/quadstore.go connectSQLTables
.)