2012-08-16 35 views
0

在我的Rails應用程序中,我創建了一個rake任務,用db:reset重置數據庫,準備測試數據庫db:test:prepare,然後嘗試重新填充數據庫使用ActiveRecord的示例數據:在Rake任務中的`db:test:prepare`後訪問ActiveRecord模型

namespace :db do 
    task :repopulate => :environment do 
    Rake::Task['db:reset'].invoke 
    Rake::Task['db:test:prepare'].invoke 
    puts Course.first.inspect 
    end 
end 

不幸的是,任務抱怨當我運行失敗,它Could not find table 'courses'。此外,它似乎沒有準備好測試數據庫,因爲我的測試全部失敗,直到我手動運行rake db:test:prepare。如果我註釋掉調用db:test:prepare的行,似乎一切正常(當然,除非它不準備測試數據庫)。任何想法是什麼問題或我如何解決它?

回答

0

在rake任務後嘗試Course.reset_column_information。

+0

有沒有一種簡單的方法來做到這一點,我的數據庫中的所有表? – Ajedi32 2012-08-16 16:56:05