Isak
(Isak)
1
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)"
Isak
(Isak)
3
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