主にMySQL向け
環境
rails (5.0.2)
やり方
カラム追加の記述の場合にafterを指定する。
例
name
というカラムのあとに profile_text
というカラムを足したい場合
class AddColumnHogeHoge < ActiveRecord::Migration[5.0] def change add_column :users, :profile_text, :string, after: :name, default: "", null: false end end
原理
以下メソッドに記述があるとおり、AFTER文を継ぎ足している。そのため、AFTER文の概念がないpostgresqlにはできない。
def add_column_position!(sql, options) if options[:first] sql << " FIRST" elsif options[:after] sql << " AFTER #{quote_column_name(options[:after])}" end
from: rails/schema_creation.rb at 36a6d935d2994e776054797be3c00cd50c19b1e9 · rails/rails