migration時に自動で外部キーをセットする
Railsのmigrationって、DBそのものに外部キー制約をつける場合は自前でSQLを書かないといけないので面倒なんですよね。
対策の1つとして、以下のようなヘルパを作成する方法があります。
module MigrationHelpers def foreign_key(from_table, from_column, to_table) constraint_name = "fk_#{from_table}_#{to_table}" execute %{alter table #{from_table} add constraint #{constraint_name} foreign key (#{from_column}) references #{to_table}(id)} end end
これを実装すれば毎回execute文で外部キーを定義するよりもだいぶ楽にはなります。が、ここまできたのなら全自動でやってほしいところ。そんなときに先に紹介したプラグインの登場です。まずはこいつをインストールします。
$ ruby script/plugin install svn://rubyforge.org/var/svn/redhillonrails/branches/stable-2.0/vendor/plugins/redhillonrails_core $ ruby script/plugin install svn://rubyforge.org/var/svn/redhillonrails/branches/stable-2.0/vendor/plugins/foreign_key_migrations
とまあこれをインストールすればOKぽいです。試しにこれをインストールしてdb:migrateを実行したらちゃんと張られてました。眠いので紹介だけ。