Problem with add_column in migrations with PostgreSQL

Hello everyone.

I’m a Rails newbie, and I have a question about migrations with
PostgreSQL.

I’m using the svn version of Rails, in this way:

~ $ rails depot
~ $ cd depot
~/depot $ rake rails:freeze:edge

The application will use a PostgreSQL database, so I configure my app
accordingly editing the config/database.yml file.

Now I create a model for the items table:

~/depot $ ruby script/generate model item

It creates the file db/migrate/001_create_items.rb, which I modify until
I get the following contents:

class CreateItems < ActiveRecord::Migration
def self.up
create_table :items do |t|
t.column :descr, :string
t.column :price, :decimal, :precision => 5, :scale => 2
end
end

def self.down
drop_table :items
end
end

Finally, I do:

~/depot $ rake db:migrate

which creates the items table correctly:

depot_development=# \d items
Table “public.items”
Column | Type |
Modifiers
--------------±-----------------------±-------------------------------------------------------
id | integer | not null default
nextval(‘items_id_seq’::regclass)
descr | character varying(255) |
price | numeric(5,2) |
Indexes:
“items_pkey” PRIMARY KEY, btree (id)

Now it comes the problem:

I want to add a new column, so therefore I create a new migration:

~/depot $ ruby script/generate migration add_cost

I modify the file db/migrate/002_add_cost.rb, which I modify so it looks
like this:

class AddCost < ActiveRecord::Migration
def self.up
add_column :items, :cost, :decimal, :precision => 6, :scale => 2
end

def self.down
remove_column :items, :cost
end
end

Then I do:

~/depot $ rake db:migrate

which creates the new column, BUT WITHOUT PRECISION NOR SCALE:

depot_development=# \d items
Table “public.items”
Column | Type |
Modifiers
--------------±-----------------------±-------------------------------------------------------
id | integer | not null default
nextval(‘items_id_seq’::regclass)
descr | character varying(255) |
price | numeric(5,2) |
cost | numeric |
Indexes:
“articulos_pkey” PRIMARY KEY, btree (id)

Look at the difference between price and cost columns. “price” has
precision (5) and scale (2), but cost is only “numeric”, without
precision or scale. However, I specify {:precision => 6, :scale => 2} in
the add_column command.

It looks like an add_column bug. What do you think?