mik*_*h77 2 activerecord ruby-on-rails
我有以下迁移.有没有办法在一次变化中运行这些变化而不是3?
def change
change_column :comments, :attr_1, :string, null: true
change_column :comments, :attr_2, :string, null: true
change_column :comments, :attr_3, :string, null: true
end
Run Code Online (Sandbox Code Playgroud)
最简洁的答案是不.该change_column
方法配置为获取表名,列名和选项哈希的参数.源代码change_column
可以在这里找到:https://github.com/rails/rails/blob/0fe76197d2622674e1796a9a000995a7a1f6622b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
该change_column
方法中唯一的一行是:
execute("ALTER TABLE #{quote_table_name(table_name)} #{change_column_sql(table_name, column_name, type, options)}")
它ALTER
在作为第一个参数传递的表名上执行脚本.您不能将表/列数组作为参数传递,因此您必须一次执行一个.这种范例在Rails迁移中非常典型.
归档时间: |
|
查看次数: |
1299 次 |
最近记录: |