views:

109

answers:

1

Does anybody know the magic incantation required to get a Sinatra application that uses DataMapper up and running on Heroku's Bamboo stack? The Bamboo stack doesn't include any pre-installed system gems and no matter what combination of gems I try I keep getting this error:

undefined method `auto_upgrade!' for DataMapper:Module (NoMethodError)

This is what I have in my .gems file:

sinatra
pg
datamapper
do_postgres
dm-postgres-adapter

And these are the dependencies that are installed when I push the app to Heroku:

-----> Heroku receiving push
-----> Sinatra app detected

-----> Installing gem sinatra from http://rubygems.org
       Successfully installed sinatra-1.0
       1 gem installed

-----> Installing gem pg from http://rubygems.org
       Building native extensions.  This could take a while...
       Successfully installed pg-0.9.0
       1 gem installed

-----> Installing gem datamapper from http://rubygems.org
       Successfully installed extlib-0.9.15
       Successfully installed addressable-2.2.1
       Successfully installed dm-core-1.0.2
       Successfully installed dm-aggregates-1.0.2
       Successfully installed dm-migrations-1.0.2
       Successfully installed dm-constraints-1.0.2
       Successfully installed dm-transactions-1.0.2
       Successfully installed fastercsv-1.5.3
       Successfully installed json_pure-1.4.6
       Successfully installed dm-serializer-1.0.2
       Successfully installed dm-timestamps-1.0.2
       Successfully installed dm-validations-1.0.2
       Successfully installed uuidtools-2.1.1
       Successfully installed stringex-1.1.0
       Successfully installed dm-types-1.0.2
       Successfully installed datamapper-1.0.2
       16 gems installed

-----> Installing gem do_postgres from http://rubygems.org
       Building native extensions.  This could take a while...
       Successfully installed data_objects-0.10.2
       Successfully installed do_postgres-0.10.2
       2 gems installed

-----> Installing gem dm-postgres-adapter from http://rubygems.org
       Successfully installed dm-do-adapter-1.0.2
       Successfully installed dm-postgres-adapter-1.0.2
       2 gems installed

The application works fine locally using SQLite3. Am I missing another PostgreSQL component?

A: 

The dm-migrations gem adds DataMapper.auto_upgrade!. Are you requiring dm-migrations or the datamapper gem before auto-upgrading?

dkubb
That did it, thanks! I wasn't requiring the datamapper gem in the Sinatra application.
John Topley
What I mean is, I was only requiring dm-core and dm-timestamps.
John Topley
Ahh great, good to hear it worked out for you. I'll see about updating the documentation on datamapper.org to mention this.
dkubb