■概要 (激しく既出感ありですが。。)何年もrailsやってますが、正しく理解できていなかった事の一つに rake spec(test)すると、処理の一環としてdb:test:prepareタスクを呼び出す という挙動があります。 通常問題にならないのですが、db:test:prepareが、db/schema.rbの情報を元にデーターベースを作成する為、railsが認識できないような項目は抜けて落ちてしまいます。 関数適用したインデックス トリガーやファンクション 別スキーマに作ったオブジェクト ...etc なので RAILS_ENV=test rake db:drop RAILS_ENV=test rake db:create RAILS_ENV=test rake db:migrate してからrake specする事を前提に、db:test:prepareを呼び出さずにspecを