2011-07-05 66 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不是主鍵,並且允許爲空。

這兩件事情做,所以我會準備測試環境