【问题标题】:Change integer to float column table Rails将整数更改为浮点型表 Rails
【发布时间】:2015-05-20 12:45:28
【问题描述】:

我需要将t.integer :mark_up 更改为float 我该怎么做?我已经尝试在我的终端rails g migration change_column(:stakes, :mark_up, :float) 中不断获得syntax error near unexpected token ('

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4.2


    【解决方案1】:

    您不能在终端中使用 rails 代码 (change_column)。

    您需要做的是首先创建迁移:rails generate migration ChangeMarkUpType,然后将您的 rails 代码放入创建的文件中。

    您可以阅读有关迁移的更多信息here

    【讨论】:

    • 好的,我这样做了,并将更改定义为 change_column :stake, :mark_up, :float 但我的架构仍然显示 :mark_up 是一个整数
    • 你运行 rake db:migrate 了吗?
    • @NeilMurphy 您看到迁移运行了吗?你能用迁移文件中的代码更新你的问题吗?
    【解决方案2】:

    在您的终端中:

    rails generate migration ChangeMarkUpToFloat
    

    在创建的文件中:db/migrate/2015xxxxxxxxxx/change_mark_up_to_float.rb

    编辑为:

    class ChangeMarkUpToFloat < ActiveRecord::Migration
      def change
        change_column :stakes, :mark_up, :float
      end
    end
    

    然后回到你的终端:

    rake db:migrate
    

    【讨论】:

    • 当应用程序未投入生产时,这是可以的。当应用程序投入生产时,我建议您遵循 zero downtime deployment 上的 engineyard 指南
    • 当迁移确实不可逆时,请谨慎使用change 方法。如果你运行rake db:migrate:down,它怎么知道要转换成什么类型​​?考虑改为定义updown
    猜你喜欢
    • 2019-04-26
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2011-02-04
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    相关资源
    最近更新 更多