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

问题描述 投票:16回答:1

我试着在表中的特定列后添加一列到表中.这是我做的。

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

我不认为这个命令进行得很顺利 我在上面的文件中看到一个'='。我不认为它应该在那里。谁能告诉我,如果我错过了什么?

如果是的话,我怎样才能撤销上面的操作?

ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
1个回答
48
投票

我怀疑它是否允许你真正 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 让生成器认为这是一个新的列。很遗憾,你不能使用Ruby语法(a => b)的命令行。

© www.soinside.com 2019 - 2024. All rights reserved.