加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3 Migration Alter Float Length / Deci

发布时间:2020-12-17 02:52:33 所属栏目:百科 来源:网络整理
导读:我如何在Rails 3迁移文件中更改浮点列的小数和长度属性.我试过以下没有成功: class IncreaseLatitudeLongitudeFieldLengths ActiveRecord::Migration def self.up change_column :skateparks,:latitude,:float,{:length = 15,:decimals = 12} change_column
我如何在Rails 3迁移文件中更改浮点列的小数和长度属性.我试过以下没有成功:

class IncreaseLatitudeLongitudeFieldLengths < ActiveRecord::Migration
  def self.up

    change_column :skateparks,:latitude,:float,{:length => 15,:decimals => 12}
    change_column :skateparks,:longitude,:decimals => 12}

  end

  def self.down

    change_column :skateparks,{:length => 0,:decimals => 0}
    change_column :skateparks,:decimals => 0}

  end
end

解决方法

个人经验最有效(因为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,:latitude

编辑:第二次看:浮动,{:长度=> 15,:decimals =>似乎是错的.我假设你的意思是::decimal,:precision => 15,:scale => 12?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读