Over a million developers have joined DZone.

Neo4j on Heroku - Part 3

DZone's Guide to

Neo4j on Heroku - Part 3

· Cloud Zone
Free Resource

Are you joining the containers revolution? Start leveraging container management using Platform9's ultimate guide to Kubernetes deployment.

This is the third and final installment of the Neo4j on Heroku tutorial.  After reading this, you should be ready to go out there and start hacking on Neo4j and then deploying your apps to Heroku.

This week we learned that leaving the create_graph method accessible to the world was a bad idea. So let’s go ahead and delete that route in Sinatra, and instead create a Rake Task for it.

In Rakefile:

require 'neography/tasks'
require './neoflix.rb'

namespace :neo4j do
  task :create do
    neo = Neography::Rest.new(ENV['NEO4J_URL'] || "http://localhost:7474")

That’s much better. We can create our graph locally with

rake neo4j:create

or we can run it on Heroku with

heroku run rake neo4j:create
Log in to Heroku, the go to your apps https://api.heroku.com/myapps, click on your application (I’ll click on Neoflix) then on the “addons” drop down menu on the right, select Neo4j, and you’ll see this screen come up:

You can zip up the contents of your Neo4j database to neoflix.zip and perform a restore operation.

cd neo4j/data/graph.db
zip -r neoflix.zip .

Your Neo4j addon will restart and all your data will be loaded and ready to go.

If you have followed part 1 and part 2 of this series, then you should take what you have learned and create a Neo4j demo application. Take part in the Neo4j Challenge and have a chance at winning awesome prices as well as learning a new technology.

Source:  http://maxdemarzi.com/2012/01/18/neo4j-on-heroku-part-three/

Using Containers? Read our Kubernetes Comparison eBook to learn the positives and negatives of Kubernetes, Mesos, Docker Swarm and EC2 Container Services.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}