Kyl*_*cot 4 ruby-on-rails ruby-on-rails-3
我怎么会去改变decimals
和length
一个浮动列的属性在我的Rails 3迁移文件.我试过以下没有成功:
class IncreaseLatitudeLongitudeFieldLengths < ActiveRecord::Migration
def self.up
change_column :skateparks, :latitude, :float, {:length => 15, :decimals => 12}
change_column :skateparks, :longitude, :float, {:length => 15, :decimals => 12}
end
def self.down
change_column :skateparks, :latitude, :float, {:length => 0, :decimals => 0}
change_column :skateparks, :longitude, :float, {:length => 0, :decimals => 0}
end
end
Run Code Online (Sandbox Code Playgroud)
个人经验最有效(因为MySQL/sqlite有时会拒绝对列的更改):创建新列,复制数据,删除旧列,重命名新列.
# Example for latitude
add_column :skateparks, :latitude2, :decimal, :precision => 15, :scale => 12
execute "UPDATE skateparks SET latitude2 = latitude"
remove_column :skateparks, :latitude
rename_column :skateparks, :latitude2, :latitude
Run Code Online (Sandbox Code Playgroud)
编辑:第二次看起来:float, { :length => 15, :decimals => 12 }
似乎是错的.我猜你的意思是::decimal, :precision => 15, :scale => 12
?