rake db:migrate "undefined method `default'" error

Hi all,

Just starting with Rails and working through the early chapters of the Pragmatic Programmers Agile Development with Rails book (2nd addition). When doing a "rake db:migrate" to add a column to a table I get this: undefined method `default' for #<ActiveRecord::ConnectionAdapters::MysqlAdapter:0xb7517ec8>

Any ideas?

thanks, David

PS: Here's the full output with the trace parameter:

dkarnows@star:/share/David/radrails/workspace/depot$ rake db:migrate --trace (in /share/David/radrails/workspace/depot) ** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:migrate == AddPrice: migrating

That was it, I forgot the colon before the "default":

class AddPrice < ActiveRecord::Migration   def self.up     add_column :products, :price, :decimal, :precision => 8, :scale => 2, default => 0   end

  def self.down     remove_column :products, :price   end end

I'm all good now, thanks David, much appreciated.

Sorry guys, I am new at RoR and have the above error as I try to run rake db:migrate. Could anyone help.

With --trace I get

rake db:migrate --trace rake aborted! undefined method `task' for #<Harpers::Application:0x9277438> /home/student/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing' /home/student/home/harpers/Rakefile:7:in `<top (required)>' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load_rakefile' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/application.rb:495:in `raw_load_rakefile' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/application.rb:78:in `block in load_rakefile' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/application.rb:77:in `load_rakefile' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/application.rb:61:in `block in run' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/lib/rake/application.rb:59:in `run' /home/student/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.0/bin/rake:31:in `<top (required)>' /home/student/.rvm/gems/ruby-1.9.2-p0/bin/rake:19:in `load' /home/student/.rvm/gems/ruby-1.9.2-p0/bin/rake:19:in `<main>'

Just use rake 0.8.7 Uninstall rake 0.9.0 gem uninstall rake -v 0.9.0 And in your Gemfile: gem 'rake', '0.8.7' Don't forget: bundle install

Alexander,

When I tried that uninstall, I got:

While executing gem ... (Gem::InstallError)     cannot uninstall, check `gem list -d rake`

Alexander,

When I tried that uninstall, I got:

If you're using bundler you don't need to uninstall rake - updating the version required in the gemfile (and running bundle install if you didn't have 0.8.7 around) should be enough

Fred