2011-07-05 68 views
0

我正在尝试用Ruby on Rails与MySQL数据库进行测试。当试图运行测试每个测试失败,同样的道理:Ruby on Rails用MySQL测试

ActiveRecord::StatementInvalid: Mysql::Error: Table 'db_test.session_cleaners' doesn't exist: DELETE FROM `session_cleaners` 

我创建了一个session_cleaners表的主键,我现在收到此错误:

ActiveRecord::StatementInvalid: Mysql::Error: Duplicate entry '0' for key 'PRIMARY': INSERT INTO `session_cleaners`() VALUES() 

我怀疑我所需要的session_cleaners表,但我不知道还有什么要做。任何帮助,将不胜感激。

感谢

回答

0

你应该执行的迁移,并准备测试数据库:

bundle exec rake db:migrate 
bundle exec rake db:test:prepare 

这会照顾一切的前提是你有有效的迁移。

你最好读the guides - 有大量的信息,人们甚至没有意识到。

+0

感谢您的答复,但它并没有帮助。我创建了一个新的测试数据库并正确设置,但仍然收到“session_cleaner”错误。 – hoitomt

0

有,我没有解决这个问题两件事情:让我用2.7

  1. 更新MySQL的宝石。我使用Ruby 1.8.6/Rails 2.3.10,因此需要此宝石
  2. 使用一个字段创建session_cleaner表:id。该ID不是主键,并且允许为空。

这两件事情做,所以我会准备测试环境