mirror of
				https://github.com/redmine/redmine.git
				synced 2025-10-31 10:25:55 +01:00 
			
		
		
		
	git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7744 e93f8b46-1217-0410-a6f0-8f06a7374b81
		
			
				
	
	
		
			23 lines
		
	
	
		
			841 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			841 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| desc 'Create YAML test fixtures from data in an existing database.
 | |
| Defaults to development database. Set RAILS_ENV to override.'
 | |
| 
 | |
| task :extract_fixtures => :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}/#{table_name}.yml", 'w' ) do |file|
 | |
|       data = ActiveRecord::Base.connection.select_all(sql % table_name)
 | |
|       file.write data.inject({}) { |hash, record|
 | |
|         # cast extracted values
 | |
|         ActiveRecord::Base.connection.columns(table_name).each { |col|
 | |
|           record[col.name] = col.type_cast(record[col.name]) if record[col.name]
 | |
|         }
 | |
|         hash["#{table_name}_#{i.succ!}"] = record
 | |
|         hash
 | |
|       }.to_yaml
 | |
|     end
 | |
|   end
 | |
| end
 |