Estoy usando Rails 3.0.3 (no pregunto) y cuando ejecuto una migración para la tabla con columna decimal y establezco: default => 0 está restableciendo la escala y la precisión de la columna a (10,0).Columna decimal de migración de rieles: valor predeterminado => 0 restableciendo la precisión de MySQL a 0?
def self.up
create_table :courses do |t|
t.integer :user_id
t.string :name
t.decimal :distance, :precision => 5, :scale => 2, :default => 0
t.text :notes
t.timestamps
end
end
Cuando quito el: default => 0 opción de la migración de la columna de escala y la precisión son correctos: (5,2)
Intenté funcionar con una migración change_column única: default =>: 0 set, pero la escala y la precisión de la columna se re-establecen en (10,0)
change_column :courses, :distance, :decimal, :default => 0.0
sé que puedo entrar en MySQL y corregir la precisión y la escala de la columna, pero se pregunta si estoy haciendo algo mal o si esto es un error?
Google no revela información, así que creo que estoy haciendo algo mal.
Gracias por la respuesta. Lo que terminé haciendo fue eliminar las opciones: precision y: scale de la migración create_table y agregué una migración column_change para la columna con: precision => 5 y: scale => 2. Dejé fuera la opción: default. Volqué todo, volví a ejecutar las migraciones, y he aquí que MySQL había establecido automáticamente el valor predeterminado de la columna en 0.0 – jacoulter
@jacoulter. No hay problema, definitivamente usaré el método que describí la próxima vez que enfrente este problema. Todavía no entiendo por qué tiene que hacerse de esta manera, de todos modos, siempre y cuando funcione por ahora. Gracias – Hishalv