85 lines
3.1 KiB
Ruby
85 lines
3.1 KiB
Ruby
require Rails.root.join('vendor', 'plugins', 'manage_fixtures', 'lib', 'manage_fixtures.rb')
|
|
|
|
desc "use rake db:fixtures:export_using_query SQL=\"select * from foo where id='bar'\" FIXTURE_NAME=foo"
|
|
namespace :db do
|
|
namespace :fixtures do
|
|
task :export_using_query => :environment do
|
|
write_yaml_fixtures_to_file(ENV['SQL'], ENV['FIXTURE_NAME'])
|
|
end
|
|
end
|
|
end
|
|
|
|
desc 'use rake db:fixtures:export_for_tables TABLES=foos[,bars,lands] Create YAML dump fixtures for a specific table(s) from data in an existing database. Defaults to development database. Set RAILS_ENV to override. '
|
|
namespace :db do
|
|
namespace :fixtures do
|
|
task :export_for_tables => :environment do
|
|
sql = "SELECT * FROM %s"
|
|
tables = ENV['TABLES']
|
|
ActiveRecord::Base.establish_connection
|
|
tables.each do |table_name|
|
|
write_yaml_fixtures_to_file(sql % table_name, table_name)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
desc ' Create YAML dump fixtures from data in an existing database. Defaults to development database. Set RAILS_ENV to override. '
|
|
namespace :db do
|
|
namespace :fixtures do
|
|
task :export_all => :environment do
|
|
sql = "SELECT * FROM %s"
|
|
skip_tables = ["schema_info"]
|
|
ActiveRecord::Base.establish_connection
|
|
(ActiveRecord::Base.connection.tables - skip_tables).each do |table_name|
|
|
i = "000"
|
|
File.open(Rails.root.join('dump', 'fixtures', table_name + '.yml'), 'w' ) do |file|
|
|
write_yaml_fixtures_to_file(sql % table_name, table_name)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
desc 'use rake db:fixtures:import_for_models MODELS=Foo[,Bar,Land] to import the YAML dump fixtures for a specific models from data in an existing database. Defaults to development database. Set RAILS_ENV to override. '
|
|
namespace :db do
|
|
namespace :fixtures do
|
|
task :import_for_models => :environment do
|
|
models = ENV['MODELS']
|
|
ActiveRecord::Base.establish_connection
|
|
models.each do |model_name|
|
|
import_model_fixture(model_name)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
desc 'use rake db:fixtures:import_for_tables TABLES=foos[,bars,lands] to import the YAML dump fixtures for a specific tables from data in an existing database. Defaults to development database. Set RAILS_ENV to override. '
|
|
namespace :db do
|
|
namespace :fixtures do
|
|
task :import_for_tables => :environment do
|
|
tables = ENV['TABLES']
|
|
ActiveRecord::Base.establish_connection
|
|
tables.each do |table_name|
|
|
import_table_fixture(table_name)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
desc 'use rake db:fixtures:import_all to import all YAML dump fixtures for all of the tables from data in an existing database. Defaults to development database. Set RAILS_ENV to override. '
|
|
namespace :db do
|
|
namespace :fixtures do
|
|
task :import_all => :environment do
|
|
ActiveRecord::Base.establish_connection
|
|
Dir.glob(Rails.root.join('dump','fixtures',"*.yml")).each do |f|
|
|
table_name = f.gsub( Regexp.escape(Rails.root.join('dump','fixtures').to_s + File::SEPARATOR), '').gsub('.yml', '')
|
|
puts "Importing #{table_name}"
|
|
import_table_fixture(table_name)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|