ActiveRecord :: StatementInvalid:找不到表

时间:2011-10-01 02:22:26

标签: ruby-on-rails unit-testing rubymine

我正在尝试运行只有

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

谢谢!

5 个答案:

答案 0 :(得分:50)

在测试前做rake db:test:prepare

答案 1 :(得分:5)

你运行rake db:migrate了吗? 如果表存在,请检查数据库。如果您正在使用sqlite,请调用sqlite3 db/development.sqlite3然后发出命令.schema 您可以手动删除数据库db/test.sqlite3,然后使用rake db:setup重新创建它。

答案 2 :(得分:2)

有时它是由多个版本的活动记录宝石引起的。请卸载除您的应用程序正在使用的宝石之外的所有宝石。我遇到了同样的问题,做了我说的话。它奏效了。

答案 3 :(得分:1)

你检查了你的灯具吗?我突然想到我修改了一个迁移但是夹具保持相同,因此导致错误。

答案 4 :(得分:0)

我遇到了同样的问题,并在db / schema.rb中找到了解决方案:

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

也许这有帮助!

除了这个schema.rb之外,

“bool”在任何地方都有效,但是在开发模式下正确执行的迁移。