ruby on rails在特定列名后添加一列

时间:2013-03-18 16:19:18

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我尝试在表格中的特定列之后向表中添加列。 这是我做的:

rails generate migration add_reaction_id_to_patient_allergies reaction_id: integer :after => 'patient_id'

以下是我的迁移文件:

class AddReactionIdToPatientAllergies < ActiveRecord::Migration
  def change
    add_column :patient_allergies, :reaction_id, :string
    add_column :patient_allergies, :integer, :string
    add_column :patient_allergies, :, :after
    add_column :patient_allergies, :=, :string
  end
end

我不认为命令进展顺利。我在上面的文件中看到了'='。我不认为应该在那里。有人能告诉我,如果我错过了什么吗?

如果是这样,我该如何撤消上述内容?

1 个答案:

答案 0 :(得分:43)

我怀疑它允许你实际rake db:migrate这次迁移,所以你不应该回滚。只需移除底部的三个add_column,然后用

替换顶部的add_column :patient_allergies, :reaction_id, :integer, after: :patient_id
rails generate migration add_reaction_id_to_patient_allergies reaction_id:integer

移植应该没问题。为了将来参考,您输入的命令应如下所示:

integer

a => b之前的空格使得生成器认为它是一个新列。遗憾的是,您不能在命令行上使用Ruby语法({{1}})。