なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

Neo4jRBでグラフDBをRailsから使う

Neo4j単体でも面白いのだけど、結果を現実世界に出すにはWEB画面を作るのが楽。というわけでNeo4jRBに触れてみる。とりあえず環境構築のみ。

環境構築

  • とりあえずDebianで環境構築をやってみる

neo4jの準備

各環境にあったパッケージリポジトリを使用しましょう。
Neo4j Debian Packages

書いてあるとおりやればサービスとしてneo4jが入ります

// リポジトリの追加
$ wget -O - https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key add -
$ echo 'deb https://debian.neo4j.org/repo stable/' | sudo tee /etc/apt/sources.list.d/neo4j.list
$ sudo apt-get update

// インストール
$ sudo apt-get install neo4j

一回DBを起動させておいてパスワード変更しといてください

$ sudo systemctl start neo4j

この後 http://localhost:7474 へ行って、id: neo4j, pass:neo4jでログイン、初回パスをneo4jから違うものに変更しておく。

Rubyの準備

とりあえずrbenvを使ってRuby 2.4に変えておけばいいんじゃないかと

Railsの準備

Rails 5.2.1を使った。

いざモックアップ作成

とりあえず公式ドキュメントの通りコマンドを叩く、
Setup — Neo4j.rb 7.1.4 documentation

だいたい以下のような感じで進めた。

  • 初回はrbenvに入ったrailsコマンドを使いたかったので以下のようになっている
$ rbenv exec bundle install rails
$ rbenv exec gem rails new myapp -m http://neo4jrb.io/neo4j/neo4j.rb -O
$ cd myapp
$ bundle install

Railsは基本的なCRUD処理はscaffoldで作ってくれる。以下は例。

$ rails generate scaffold User name:string email:string
$ rails s

とりあえずこれでNeo4Jのノードとちょっとしたアトリビュートを画面から追加できる。
リレーションなどは別APIを作ってみるか?