私はRails 3.0.3を使用しています(質問しません)。また、10進数の列のテーブルに対してマイグレーションを実行し、default => 0に設定すると、列の位取りと精度が(10,0)に再設定されます。Rails Migration Decimal Column:デフォルト=> 0 MySQL精度を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
I削除:マイグレーションからデフォルト=> 0オプションスケーリング列のと精度が正しい:(5,2)
Iのみとchange_column移行を実行しようとした:デフォルト=> 0セットが、列のスケールと精度が
change_column :courses, :distance, :decimal, :default => 0.0
(10,0)に再設定された私は、私は、MySQLに入ると、カラムの精度とスケールを修正することができます知っているが、私がやっている場合には不思議何か間違っているか、これがバグかどうか
Googleでは情報が公開されていないので、私は何か間違っていると思います。
感謝。私がやったことは、:precisionと:scaleオプションをcreate_tableの移行から削除し、column = changeマイグレーションを:precision => 5と:scale => 2で追加したことです。私はすべてをロールバックし、マイグレーションを再実行しました。そして、MySQLは自動的に列のデフォルト値を0. – jacoulter
に設定しました.Jacoulterは問題ありません。次回この問題に直面する方法を使用します。とにかくそれが今のところ働いている限り、なぜこのようにしなければならないのか、私はまだ理解していません。ありがとう – Hishalv