【问题标题】:How to add a new column in an existing table in Rails 5?如何在 Rails 5 的现有表中添加新列?
【发布时间】:2016-08-02 10:56:50
【问题描述】:

我想在 Rails 5 的一个表中添加一个新列。我最近使用以下方式重命名了一个列:

rails g migration ChangeJobsTable

然后在20160802104312_change_jobs_table.rb:

class ChangeJobsTable < ActiveRecord::Migration[5.0]
  def change
    rename_column :jobs, :skills, :skills1
  end
end

然后

rails db:migrate

效果很好,但是现在如果我还想添加一个新列skills2,我需要这样做吗?

class ChangeJobsTable < ActiveRecord::Migration[5.0]
  def change
    add_column :jobs, :skills2
  end
end

【问题讨论】:

  • 你在正确的轨道上......继续前进
  • 我收到了这个错误:rails aborted! StandardError:发生错误,此迁移和所有后续迁移已取消:参数数量错误(给定 2,预期 3..4)
  • 是的,只需按照 hgsongra(hitesh) 的说明进行操作即可..

标签: ruby-on-rails ruby rails-migrations ruby-on-rails-5


【解决方案1】:

您忘记添加datatype,下面是更新后的迁移。

class ChangeJobsTable < ActiveRecord::Migration[5.0]
  def change
    add_column :jobs, :skills2, :string
  end
end

【讨论】:

    【解决方案2】:

    你确实忘记了datatype。以后你也可以通过控制台来做:

    rails g migration AddSkills2ToJobs skills2:string

    【讨论】:

      【解决方案3】:

      这对我有用,您可以在架构中进行验证

      rails g migration add_skills2_to_ChangeJobsTable skills2:string

      rake db:migrate

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-26
        • 2020-02-03
        • 2018-08-14
        • 2011-06-17
        • 1970-01-01
        • 2015-09-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多