2012-08-16 63 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