如何在rails 3.x迁移中更改新列的位置

Gal*_*aim 4 ruby-on-rails ruby-on-rails-3

我创建了一个只添加新列的迁移,但是我希望在created_at和updated_at列之前添加它,有没有办法指定新列的创建位置?

我搜索过,只发现有人说要在add_column中使用:after选项,但它没有做任何事情.然后我查看了rails api文档,发现没有这样的选项.

Mik*_*kin 5

选项适合我

add_column :table_name, :column_name, :type, :after => :column_name
Run Code Online (Sandbox Code Playgroud)

还看看这个问题.

  • 只是为了确认,是的,after选项仅适用于MySQL DB.出于某种原因,Postgres适配器从未更新以支持此功能(从Rails 3.2.13开始) (2认同)
  • 这不是Rail的遗漏,PG不允许这样:http://dba.stackexchange.com/a/3277 (2认同)