在Rake Task中的`db:test:prepare`之后访问ActiveRecord模型

时间:2012-08-16 14:18:30

标签: ruby-on-rails rake

在我的Rails应用程序中,我创建了一个使用db:reset重置数据库的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的行,一切似乎都工作正常(当然,它不会准备测试数据库)。任何想法是什么问题或我如何解决它?

1 个答案:

答案 0 :(得分:0)

在rake任务之后尝试Course.reset_column_information。