我的问题是现在我必须删除数据库中几乎表中存在的1列。 我可以通过基本迁移来处理它:
remove_column :table_1, :field_should_removed
remove_column :table_2, :field_should_removed
...
remove_column :table_n, :field_should_removed
但是,有没有办法把所有这些表放在一句话中,如:
remove_column %i[table_1, table_2, ..., table_n], :field_should_removed
答案 0 :(得分:0)
使用更少的代码执行此操作的方法可以是:
tables = %i[table_1, table_2, ..., table_n]
tables.each do |table|
remove_column table, :field_should_removed
end
正如你所提到的那样,在大多数表格中你也可以这样做:
ActiveRecord::Base.connection.tables.each do |table|
table_name = table.to_sym
if column_exists?(table_name, :field_should_removed)
remove_column table, :field_should_removed
end
end