Over a million developers have joined DZone.
Platinum Partner

Neo4j on Heroku - Part 3

· Cloud Zone

The Cloud Zone is brought to you in partnership with Mendix. Better understand the aPaaS landscape and how the right platform can accelerate your software delivery cadence and capacity with the Gartner 2015 Magic Quadrant for Enterprise Application Platform as a Service.

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 Mendix. Discover how Mendix for Mobile App Deveopment makes it incredibly fast and easy for any developer to build engaging multi-channel apps.


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

{{ parent.tldr }}

{{ parent.urlSource.name }}