22

我试图在表中的特定列之后向表中添加一列。这是我所做的:

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

我认为命令进行得并不顺利。我在上面的文件中看到了一个“=”。我不认为它应该在那里。如果我错过了什么,有人可以告诉我吗?

如果是这样,我该如何撤消上述操作?

4

1 回答 1

55

我怀疑它是否允许您实际进行rake db:migrate此迁移,因此您不必回滚。只需删除底部的三个add_columns 并将顶部的替换为

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 语法 ( )。

于 2013-03-18T16:21:50.007 回答