aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/tasks/databases.rake
diff options
context:
space:
mode:
authorMatthew Rudy Jacobs <MatthewRudyJacobs@gmail.com>2008-08-09 17:04:54 +0100
committerMichael Koziarski <michael@koziarski.com>2008-08-09 18:36:40 +0200
commiteb4668b26ad4aacf79488d2bee553e9452971c35 (patch)
treebc7ee2f508c073b430bc34f285aaac4e6d59593a /railties/lib/tasks/databases.rake
parentb2630502a0525e5965d4eff283e3d2613cd1ca19 (diff)
downloadrails-eb4668b26ad4aacf79488d2bee553e9452971c35.tar.gz
rails-eb4668b26ad4aacf79488d2bee553e9452971c35.tar.bz2
rails-eb4668b26ad4aacf79488d2bee553e9452971c35.zip
rake db:fixtures:load and db:fixtures:identify now accept a FIXTURES_PATH option eg. "rake db:fixtures:load FIXTURES_PATH=spec/fixtures"
Signed-off-by: Michael Koziarski <michael@koziarski.com> [#792 state:committed]
Diffstat (limited to 'railties/lib/tasks/databases.rake')
-rw-r--r--railties/lib/tasks/databases.rake9
1 files changed, 5 insertions, 4 deletions
diff --git a/railties/lib/tasks/databases.rake b/railties/lib/tasks/databases.rake
index 5ec712a02d..21c81b3fb5 100644
--- a/railties/lib/tasks/databases.rake
+++ b/railties/lib/tasks/databases.rake
@@ -182,11 +182,11 @@ namespace :db do
end
namespace :fixtures do
- desc "Load fixtures into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z."
+ desc "Load fixtures into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z. Specify an alternative path (eg. spec/fixtures) using FIXTURES_PATH=spec/fixtures."
task :load => :environment do
require 'active_record/fixtures'
ActiveRecord::Base.establish_connection(Rails.env)
- base_dir = File.join(Rails.root, 'test', 'fixtures')
+ base_dir = ENV['FIXTURES_PATH'] ? File.join(Rails.root, ENV['FIXTURES_PATH']) : File.join(Rails.root, 'test', 'fixtures')
fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir
(ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file|
@@ -194,7 +194,7 @@ namespace :db do
end
end
- desc "Search for a fixture given a LABEL or ID."
+ desc "Search for a fixture given a LABEL or ID. Specify an alternative path (eg. spec/fixtures) using FIXTURES_PATH=spec/fixtures."
task :identify => :environment do
require "active_record/fixtures"
@@ -203,7 +203,8 @@ namespace :db do
puts %Q(The fixture ID for "#{label}" is #{Fixtures.identify(label)}.) if label
- Dir["#{RAILS_ROOT}/test/fixtures/**/*.yml"].each do |file|
+ base_dir = ENV['FIXTURES_PATH'] ? File.join(Rails.root, ENV['FIXTURES_PATH']) : File.join(Rails.root, 'test', 'fixtures')
+ Dir["#{base_dir}/**/*.yml"].each do |file|
if data = YAML::load(ERB.new(IO.read(file)).result)
data.keys.each do |key|
key_id = Fixtures.identify(key)