0

私はRails 3.2.3アプリケーションを使用しています。データベースの移行で外部キーのインデックスを追加しています。ただし、移行を実行した後にキーがインデックスに登録されていないように見えます。私はmysqlコンソールから直接テストしました。それは、私がやったより良い説明です:add_indexがRails 3で動作していません

私はOwnerモデルに関連しているCarモデルを持っている、よう:

class Car 
    belongs_to :owner 
end 

class Owner 
    has_many :car 
end 

ものは、私はインデックスを追加する別の移行を作成したDBテーブルを既存たので、私は次のように書いています。

add_index :cars, :owner_id, name: "owner_index" 

次に、私はマイグレーションを実行し、Railsに従ってすべてうまくいっています。私は私のmysqlにログインして、EXPLAINクエリを実行するときしかし、私はkey collumnでowner_indexが表示されていない。

mysql> EXPLAIN SELECT * FROM cars WHERE owner_id = 41; 
+-------------+------+---------------+---------+-------+---------+-------------+ 
| select_type | type | key   | key_len | ref | rows | Extra  | 
+-------------+------+---------------+---------+-------+---------+-------------+ 
| SIMPLE  | ref | NULL   | 5  | const | 108 | Using where | 
+-------------+------+---------------+---------+-------+---------+-------------+ 
1 row in set (0.00 sec) 

理論的に(とthis postによる)、前のクエリでキー列はowner_indexを返す必要がありますNULLではありません。

私は間違ったことをしましたか?私は何が欠けていますか?

答えて

0

ああ、申し訳ありませんが、これは私の注意の欠如でした。前述の手順は、nameパラメータをadd_indexメソッドに渡す限り正常に動作します。

関連する問題