migrationのadd_columnでafterオプションを付加する
追記
こっちどーぞ
http://d.hatena.ne.jp/foosin/20090531/1243765471
何かマイグレーションのadd_columnでafterを付けたがってる人の気配を感じたのでやってみる。
ActiveRecordのソースを書き換えれば3秒で出来る。
[/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract] % diff schema_statements.rb schema_statements.rb_org 396,398d395 < if options[:after] < sql << " AFTER #{options[:after]}" < end
いじる箇所はadd_columnではなくadd_column_optionsメソッドである。
add_column使用例。
def self.up add_column :users, :added, :string, :default => 'a', :after => 'id' end
発行されるクエリ。
ALTER TABLE `users` ADD `added` varchar(255) DEFAULT 'a' AFTER id
とまあこんなの簡単なのだけど、これをActiveRecordを書き換えずに、となると分からない。
perlで言えば
*ActiveRecord::add_column_options = $coderef;
とかして終わりなのだけど。