将相同的列名添加到不同的表 - Rails迁移

Bar*_*ton 2 ruby-on-rails rails-migrations

我只是想确定这是否可行:

class AddUpdatedById < ActiveRecord::Migration
  def change
    add_column :clients, :updated_by_id, :integer
    add_column :contacts, :updated_by_id, :integer
    add_column :court_agencies, :updated_by_id, :integer
  end
end
Run Code Online (Sandbox Code Playgroud)

这样我就可以保存迁移.因为如果我将逐个迁移它们,我认为这将需要更多时间并且使我的迁移陷入困境.所以你怎么看?

是否有可能或者我应该逐一做同样的事情?

Ahm*_*uty 7

是的,你可以,它将是一个组迁移.如果你想要更改许多表,你也可以做这样的事情来编写更少的代码.

def change
  tables = [:clients, :contacts, :court_agencies]

  tables.each do |table_name|
    add_column table_name, :updated_by_id, :integer
  end
end
Run Code Online (Sandbox Code Playgroud)

如果您决定回滚此迁移,它将删除列而不会出现任何问题.