I know this thread is two months old, but it is the only reference in the official Heroku channels I have found referring to the dsl conflict with the 1.9.2 stack and rake 0.9.x (I resorted to SO to find a few more thorough explanations and possible solutions). If documentation exists it would be great to know where for reference.
The conflict came about while fixing an issue with a crashed email notification job. Turns out moving my stack from bamboo-ree(1.8.7) to bamboo-mri(1.9.2) caused cron to throw 'uninitialized constant Rake::DSL'. Unfortunately this wasn't caught until we noticed nightly jobs had stopped running. Unfortunate as one of the jobs is a forum notification mass-mailer that had a queue backed up for several days. ~2850 errant emails after fixing the rake issue (5 minutes), our solution was to alter our Rake file in the exact order below, adding "require 'rake/dsl_definition'" _before_ "require 'rake'": require File.expand_path('../config/application', __FILE__) require 'rake/dsl_definition' require 'rake' Beyond changes to the stack, I'd second updating documentation for cron, dj, workers, and proc/rake to include this potential conflict, and methods to prevent the issue. -Alex On Thu, Jul 21, 2011 at 9:59 AM, Terence Lee <tere...@heroku.com> wrote: > That's a good point. We'll take a look at adding something here. > > -Terence > > On Thu, Jul 14, 2011 at 4:48 PM, Francois <fhar...@gmail.com> wrote: >> >> Terence >> this error has been happening to a lot of people, it might be worth >> mentioning this in the docs somewhere? I searched for 'uninitialized >> constant Rake::DSL' in the docs and there was no mention. >> >> - F >> >> On Jul 14, 10:53 am, Terence Lee <tere...@heroku.com> wrote: >> > Hello Keenan, >> > >> > It's because rake is built into ruby 1.9.2 and the version is 0.8.7 and >> > that's the one being called here. We're looking into ways to fix this. >> > In >> > the meantime, can you try hard coding your rake to 0.8.7 in your >> > Gemfile? >> > Once you have that working locally, it should work fine on heroku. >> > >> > Best, >> > Terence >> > >> > >> > >> > On Wed, Jul 13, 2011 at 9:06 AM, Keenan Brock <kee...@thebrocks.net> >> > wrote: >> > > Hi, >> > >> > > Question: Are others able to run: heroku rake db:migrate OR heroku >> > > console >> > > "puts Model.count" ? >> > >> > > This is probably user error, but I can't figure it out. reminds me of >> > > not >> > > specifying RAILS_ENV when running rails console. >> > >> > > I had run rake db:seed which populated the Avatar model. >> > > I view a page on the website that relies upon the Avatar model. >> > > I ran heroku config:add RAILS_ENV=production (just in case) >> > >> > > But from heroku console: >> > >> > > *> puts Avatar.count* >> > > ActiveRecord::StatementInvalid: PGError: ERROR: relation "avatars" >> > > does >> > > not exist >> > > : SELECT a.attname, format_type(a.atttypid, a.atttypmod), >> > > d.adsrc, a.attnotnull >> > > FROM pg_attribute a LEFT JOIN pg_attrdef d >> > > ON a.attrelid = d.adrelid AND a.attnum = d.adnum >> > > WHERE a.attrelid = '"avatars"'::regclass >> > > AND a.attnum > 0 AND NOT a.attisdropped >> > > ORDER BY a.attnum >> > >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.9/lib/active_record/conn >> > > ection_adapters/abstract_adapter.rb:207:in >> > > `rescue in log' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.9/lib/active_record/conn >> > > ection_adapters/abstract_adapter.rb:199:in >> > > `log' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.9/lib/active_record/conn >> > > ection_adapters/postgresql_adapter.rb:501:in >> > > `query' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.9/lib/active_record/conn >> > > ection_adapters/postgresql_adapter.rb:1037:in >> > > `column_definitions' >> > >> > > *> heroku rake db:migrate* >> > >> > > (in /app) >> > > rake aborted! >> > > uninitialized constant Rake::DSL >> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in `const_missing' >> > > /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in >> > > `<class:TaskLib>' >> > > /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in >> > > `<module:Rake>' >> > > /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in >> > > `<top >> > > (required)>' >> > > /app/.bundle/gems/ruby/1.9.1/gems/rdoc-3.8/lib/rdoc/task.rb:37:in >> > > `require' >> > > /app/.bundle/gems/ruby/1.9.1/gems/rdoc-3.8/lib/rdoc/task.rb:37:in >> > > `<top >> > > (required)>' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks/documentat >> > > ion.rake:2:in >> > > `require' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks/documentat >> > > ion.rake:2:in >> > > `<top (required)>' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:15:in >> > > `load' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:15:in >> > > `block in <top (required)>' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:6:in >> > > `each' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:6:in >> > > `<top (required)>' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:2 >> > > 15:in >> > > `require' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:2 >> > > 15:in >> > > `initialize_tasks' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:1 >> > > 39:in >> > > `load_tasks' >> > > >> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:7 >> > > 7:in >> > > `method_missing' >> > > /app/Rakefile:7:in `<top (required)>' >> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `load' >> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile' >> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile' >> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2058:in >> > > `standard_exception_handling' >> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile' >> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:1991:in `run' >> > > /usr/ruby1.9.2/bin/rake:31:in `<main>' >> > >> > > Thanks for any pointers on what I am doing wrong, >> > > Keenan >> > >> > > --Keenan >> > >> > > -- >> > > You received this message because you are subscribed to the Google >> > > Groups >> > > "Heroku" group. >> > > To post to this group, send email to heroku@googlegroups.com. >> > > To unsubscribe from this group, send email to >> > > heroku+unsubscr...@googlegroups.com. >> > > For more options, visit this group at >> > >http://groups.google.com/group/heroku?hl=en. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Heroku" group. >> To post to this group, send email to heroku@googlegroups.com. >> To unsubscribe from this group, send email to >> heroku+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/heroku?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Heroku" group. > To post to this group, send email to heroku@googlegroups.com. > To unsubscribe from this group, send email to > heroku+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/heroku?hl=en. > -- You received this message because you are subscribed to the Google Groups "Heroku" group. To post to this group, send email to heroku@googlegroups.com. To unsubscribe from this group, send email to heroku+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/heroku?hl=en.