Migrations with :decimal

I have the following migration:

class TestMigration < ActiveRecord::Migration
  def self.up
    create_table :apples do |t|
      t.column :name, :string
      t.column :qty, :decimal, :precision => 16, :scale => 2
    end
    add_column :apples, :amt, :decimal, :precision => 16, :scale => 2
  end

  def self.down
    drop_table :apples
  end
end

Which yields this db structure:

CREATE TABLE apples
(
  id serial NOT NULL,
  name varchar(255),
  qty numeric(16,2),
  amt numeric,
  CONSTRAINT apples_pkey PRIMARY KEY (id)
);

Is my add_column statement wrong, or is there a bug somewhere? Running
latest edge -- 5086.

Any feedback appreciated,
Isak

I haven’t found :decimal to work for me. Use the following in your migration (outside the create table loop).

execute "ALTER TABLE apples ADD COLUMN amt DECIMAL(16,2)"

Thank you, but I should have been a little clearer.

Edge rails does support decimal columns, I'm trying to figure out what
goes wrong in my migration.

Is it my code that's wrong, my environment, or a bug in rails?

I just ran the same migration for sqlite, with different results:

CREATE TABLE apples ("id" INTEGER PRIMARY KEY NOT NULL, "name"
varchar(255), "qty" decimal, "amt" decimal(16,2));

Now amt has precision/scale, while qty doesn't..

Isak