web-dev-qa-db-ja.com

ActiveRecord :: StatementInvalid:テーブルが見つかりませんでした

users_test.rbファイルを実行しようとしています。

test "the truth" do
     assert true
   end

いいねテーブルがありますが、それでもこのエラーが発生します。なぜそうなのか?

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
➜  channelappnew  rake db:test:clone
➜  channelappnew  rake db:test:clone_structure
➜  channelappnew  rake db:migrate
➜  channelappnew  rake db:test:load
➜  channelappnew  rake db:test:prepare
➜  channelappnew  rake db:test:purge
➜  channelappnew  Ruby -Itest test/unit/user_test.rb
Loaded suite test/unit/user_test
Started
E

Error:
test_the_truth(UserTest):
ActiveRecord::StatementInvalid: Could not find table 'likes'




Finished in 0.058371 seconds.

1 tests, 0 assertions, 0 failures, 1 errors, 0 pendings, 0 omissions, 0 notifications
0% passed

17.13 tests/s, 0.00 assertions/s

ありがとう!

21
Ava

テストの前にrake db:test:prepare

52
Hassan

rake db:migrateを実行しましたか?テーブルが存在するかどうかデータベースを確認してください。 sqliteを使用している場合は、sqlite3 db/development.sqlite3を呼び出してから、コマンド.schemaを発行します。データベースdb/test.sqlite3を手動で削除してから、rake db:setupで再作成できます。

5
jbasko

アクティブレコードジェムの複数のバージョンが原因で発生する場合があります。アプリケーションが使用しているものを除くすべてのgemをアンインストールしてください。私は同じ問題に直面し、私が言ったことと同じことをしました。機能した。

2
narasappa

備品をチェックしましたか?移行を変更したのに、フィクスチャが同じままだったため、エラーが発生しました。

2
ryudice

私はちょうど同じ問題を抱えていて、db /schema.rbで解決策を見つけました:

# Could not dump table "xxx" because of following StandardError
#   Unknown type 'bool' for column 'yyy'

多分これは役に立ちます!

「bool」はこのschema.rbを除いてどこでも機能しましたが、移行は開発モードで正しく実行されました。

0
randomcontrol