rake db:fixtures:loadによる外部制約の無視 (Rails 2.3.2)

foreign keyを設定したテーブルへfixturesを使って大量のデータをテーブルに投入中、外部制約違反の誤ったデータがなぜかimportされていました。

外部制約が正しく設定されていないのかと思いきや、mySQLのログを確認すると勝手に「SET FOREIGN_KEY_CHECKS = 0」を実行して、外部制約をしっかり無視している模様…。

おいおい。。。

 13 Query     SET FOREIGN_KEY_CHECKS = 0
 13 Query     BEGIN
 13 Query     DELETE FROM `hoge_table`
 13 Query     SHOW FIELDS FROM `hoge_table`
 13 Query     SHOW FIELDS FROM `hoge_table`
      〜insert文〜
 13 Query     COMMIT
 13 Query     SET FOREIGN_KEY_CHECKS = 1