OrientGo is a Go client for the OrientDB database.
OrientDB versions supported: 2.0.15 - 2.1.5
Not supported versions:
Driver is under active development. API in
orientgo is potentially unstable (though getting more stable now).
Early adopters are welcome to try it out and report any problems found.
Original ogonori API is deprecated. Still, it's source code have been frozen in v1.0 branch.
To use it, simply replace
github.com/quux00/ogonori imports with
- Mostly any SQL queries, commands and batch requests.
- Server-side scripts (via ScriptCommand or functions).
- Command results conversion to custom types via mapstructure.
- Direct CRUD operations on
- Management of databases and record clusters.
- Can be used for the golang
database/sqlAPI, with some cautions (see below).
- Only supports OrientDB 2.x series.
Not supported yet:
- OrientDB 1.x.
- Servers with cluster configuration (not tested).
- Fetch plans are temporary disabled due to internal changes.
- Transactions in Go. Transactions in JS can be used instead.
- Live queries.
- Command results streaming (#26).
- OrientDB CUSTOM type.
- ORM-like API. See Issue #6.
Caveat on using OrientGo as a database/sql API driver
WARNING: database/sql API is disabled for now.
database/sql API has some constraints that can be make it painful to work with OrientDB. For example:
- When you insert a record, the Go
database/sqlAPI only allows one to return a single int64 identifier for the record, but OrientDB uses as a compound int16:int64 RID, so getting the RID of records you just inserted requires another round trip to the database to query the RID.
Also, since OrientDB transactions are not supported, the
Tx portion of the
database/sql API is not yet implemented.
You are welcome to initiate pull request and suggest a more user-friendly API. We will try to review them ASAP.
How to run functional tests:
Pull OrientDB image:
docker pull dennwc/orientdb:2.1
go test -v ./...
Dial example - dial_example_test.go
The MIT License