domvas

domvas

EctoNeo4j - an Ecto adapter for Neo4j

Hi Elixir world,
last night, bolt_sips v2 was released by @Florin, which means that Neo4j Entreprise Edition is now covered by the driver.
Using bolt_sips can be rough sometimes, especially in a Phoenix project when you wan to use Ecto… and can’t.
That’s the purpose of EctoNeo4j, have (almost) all the Ecto features, from Shema to Repo work with Neo4j.
You can find the library here: ecto_neo4j | Hex

You can now enjoy your Repo.*, have your migrations work, etc. But remember that Ecto is designed for relational database and Neo4j is a graph database then not all Ecto features work. So don’t expect join, etc. to work.
Additionnally, Ecto.Query is sql-oriented then only simple cypher query are supported (i.e on one node or one label).
See docs for more information.

Hope this library will help you.
And thanks to @Florin and @mschae for their work on bolt_sips and boltex!

Most Liked

domvas

domvas

As I said in another topic, note that soon ecto_neo4j won’t be maintained anymore.
Having a way to connect Neo4j and Ecto has been a dream for most of Neo4j’s users who love Elixir, but in the end, it’s an unsolvable problem: graph concept doesn’t fit in relational ones.
ecto_neo4j was an attempt, and yes it has some good parts but you can’t have a really nice modeled graph if you always have to think relational…

But don’t be alarmed, it’s not my goal to leave you with unmaintained / unsatisfying package. An other one is on its way and will be soon available (in the next few days if I’m a genius, so maybe next few weeks :D). It’ll be announced here on elixir forum so keep it touch!

domvas

domvas

Version 0.6.2 of ecto_neo4j is out with… a (light) relationship support.
It was a bit like putting squares in triangles but it works for simple operations, which ease the data management.
It is now possible to insert, update, preload your relationship in a classic ecto way even if specific functions (with same name) need to be used.

A comprehensive doc has been added too: Up and running — EctoNeo4j v0.6.6
which demonstrate all the features with examples.

Hope you’ll enjoy this new version.

Florin

Florin

@domvas - thank you so much for the shoutout, and for your feedback and support. We had lots of users asking us for an Ecto driver, for Neo4j, and I think your project will fill up that gap, perfectly. Good luck with your new project, and thanks again for the shoutout :heart:

Where Next?

Popular in Announcing Top

asiniy
Hey there! I wrote a download elixir package which does exactly what its name about - an easy way to download files. I saw solutions ab...
New
pkrawat1
Presenting Aviacommerce, open source e-commerce platform in Elixir Aviacommerce is an open source e-commerce platform in Elixir. We at...
New
mplatts
With HEEX released we decided to start a components library using Tailwind CSS - check it out here: Petal Components. We also have a boi...
New
devonestes
Introducing assertions, the library that helps you write really great test assertions! GitHub: GitHub - devonestes/assertions: Helpful a...
New
blatyo
The best overview for how things are tied together is this presentation. Modules and functions are pretty well documented at this point, ...
New
RobertDober
Earmark is a pure-Elixir Markdown converter. It is intended to be used as a library (just call Earmark.as_html), but can also be used as...
239 12560 134
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36128 110
New
markmark206
simple_feature_flags is a tiny package that lets you turn features on or off based on which environment (e.g. localhost, staging, product...
New
anshuman23
Hello all, I have been working on my proposed project called Tensorflex as part of Google Summer of Code 2018.. Tensorflex can be used f...
New
pkrawat1
Hey guyz We at @aviabird are working on a payment library in elixir/phoenix. We are targeting March 2018 to add 56 Gateways to it. Have...
New

Other popular topics Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41539 114
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 126479 1222
New

We're in Beta

About us Mission Statement