Over a million developers have joined DZone.
Platinum Partner

Neo4j on Heroku - Part 3

· Cloud Zone

Download the Essential Cloud Buyer’s Guide to learn important factors to consider before selecting a provider as well as buying criteria to help you make the best decision for your infrastructure needs, brought to you in partnership with Internap.

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/

The Cloud Zone is brought to you in partnership with Internap. Read Bare-Metal Cloud 101 to learn about bare-metal cloud and how it has emerged as a way to complement virtualized services.


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

{{ parent.tldr }}

{{ parent.urlSource.name }}