有没有办法配置seed_fu,以便只种 我的测试数据库?我知道有一种方法可以指定像this这样的环境:
rake db:seed RAILS_ENV=test
但有没有办法让seed_fu使用test-environment作为默认值,这样我就不需要一直指定它?
答案 0 :(得分:1)
在seed_fu任务中,您可以明确设置环境:
Rails.env = 'test'
为了实现你所需要的,我将像这样包装seed_fu任务:
namespace :db do
task :custom_seed => :environment do
Rails.env = 'test'
Rake::Task["db:seed_fu"].execute
end
end
然后打电话:
rake db:custom_seed
答案 1 :(得分:0)
我发现将灯具放在特定于环境的子目录中,如
/lib/fixtures/test
/lib/fixtures/development
/lib/fixtures/production
消除了在错误的环境中激活错误灯具的可能性,这也是我的主要问题之一。在此变体中运行seed_fu 时仍需指定环境。它只是消除了在错误的环境中运行错误灯具的可能性。
位于lib/fixtures
下方的灯具将始终运行 - 看起来像是您希望在所有环境中保留的常规灯具的位置。
有关更多信息,请查找seed_fu gem railtie file和seed_fu gem rake task。
答案 2 :(得分:0)
通过在子shell中执行命令,发现了另一种方法:
namespace :db do
desc "Seed_fu only in test-database"
task seed_fu_test: :environment do
system("rake db:seed_fu RAILS_ENV=test")
end
end