ruby-on-rails - 如何指定所有表都应包含某些字段?

标签 ruby-on-rails rails-migrations

假设我已经用很多表(大约 40 个)定义了我的数据库。我现在意识到我想向每个表添加某些列。为了这个例子,让它成为created_byupdated_by

有没有什么方法可以在不经过 40 次迁移并手动更新每个迁移的情况下轻松完成此操作?

我正在使用 rails 2.3.8

最佳答案

您可以生成单个迁移并将此代码放入其中。它将为您提供所有表的数组(减去 Rails 自动创建的“schema_migrations”表),然后将列添加到每个表。

tables = ActiveRecord::Base.connection.tables - ["schema_migrations"]
tables.each do |table|
  add_column table, :created_by, :integer
end

关于ruby-on-rails - 如何指定所有表都应包含某些字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5110849/

相关文章:

ruby-on-rails - 如何使用 RSpec 测试 rake 任务?

ruby-on-rails - rails 测试: Only log of fails/get result in teardown?

ruby-on-rails - 即使指定了 `maintain_test_schema!`,测试迁移也未与我的 Rails 引擎一起运行

ruby-on-rails - 如何创建迁移以仅在索引存在时删除索引,而不是在不存在时抛出异常?

ruby-on-rails - rails : Paperclip question regarding column names

ruby-on-rails - has_many 使用类与类名

ruby-on-rails - 适用于HABTM关联模型的Tire/Elasticsearch

ruby-on-rails - 如何生成迁移以使引用多态

ruby-on-rails - 如何在 Rails 中将所有迁移文件转换为单个文件?

ruby-on-rails-3 - 尝试使用 rake db :structure:load, "schema_migration"加载结构时出错,不存在