Rake db:migrate as in Agile Web Development with Rails


#1

Reading Agile Web D. with Rails (2nd edition)
Working with InstantRails on Windows XP Professional Sevice Pack 2

I am trying to run a migration using the command
rake db:migrate
from the command prompt.

This is the error I’m getting:

rake aborted!
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.[]

Any ideas why is this occurring and how I can solve this?

Thanks


#2

On 1/29/07, XBone removed_email_address@domain.invalid wrote:

rake aborted!
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.[]

I had a similar error. In my case, the problem was that I was trying to
alter an existing table by adding a foreign key reference to a table
that
had existing data in it. I had a previous migration that added some test
data for me. Specifically, for me, the problem was that I was trying to
explicitly add the constraint in MySQL. I removed the constraint and let
rails handle the relationship (probably not the best idea, but I am
still
learning and playing) and the error went away.

Chris

You know you’ve achieved perfection in design, Not when you have nothing
more to add, But when you have nothing more to take away.
— Antoine de Saint-Exupery


#3

Hi. Thanks for your reply.

However, I have not added constraints through other database interfaces.

My migration is named 002_add_price.rb and this is its contents:

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


#4

Guest wrote:

Hi. Thanks for your reply.

I had the same issue and it was related to not running Rails 1.2. All
examples in the book assume you’re using this version of Rails, not sure
if this will be helpful in your case.


#5

There was the exact same thread on here a few days ago…

Upgrading to 1.2 should fix your problems.

Best,
Jamie

On Jan 29, 10:55 am, Drew O. removed_email_address@domain.invalid


#6

Yup, I just ran into this yesterday and it was because I was not
running 1.2.1. Upgrade and you are good to go.

Scott