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

标签 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

这样我将保存迁移。因为如果我将它们一一迁移,我认为这将花费更多时间并弄乱我的迁移。那么,你怎么看?

有可能还是我应该一件一件地做同样的事情?

最佳答案

是的,你可以,这将是一个组迁移。如果你想更改很多表,你也可以这样做来减少代码。

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

  tables.each do |table_name|
    add_column table_name, :updated_by_id, :integer
  end
end

如果您决定回滚此迁移,它将毫无问题地删除列。

关于ruby-on-rails - 将相同的列名添加到不同的表 - Rails 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838015/

相关文章:

ruby-on-rails - 参数不会传入子类

ruby-on-rails - 如何在 JSONAPI::Resource 中执行 `has_one: model, through: join_model`

ruby-on-rails - 尝试在 self.up 中创建记录时,Rails 迁移会出错

ruby-on-rails - 为引用自己表的外键创建 Rails 5 迁移

mysql - 回滚失败的 Rails 迁移

ruby-on-rails - 创建模型后,searchkick是否会自动更新索引?

mysql - 我必须在生产中使用 root 吗

ruby-on-rails - 如何让 Rails 迁移在 Heroku 上自动运行

ruby-on-rails - 同一 rails 资源的多个 devise_for 路线

mysql - Rails 4 rename_column 获取 MySQL 语法错误