annotate lib/tasks/.svn/text-base/extract_fixtures.rake.svn-base @ 1181:27b6f53331d5 bug_320

Close obsolete branch bug_320
author Chris Cannam
date Wed, 09 Nov 2011 14:19:49 +0000
parents cbce1fd3b1b7
children
rev   line source
Chris@0 1 desc 'Create YAML test fixtures from data in an existing database.
Chris@0 2 Defaults to development database. Set RAILS_ENV to override.'
Chris@0 3
Chris@0 4 task :extract_fixtures => :environment do
Chris@0 5 sql = "SELECT * FROM %s"
Chris@0 6 skip_tables = ["schema_info"]
Chris@0 7 ActiveRecord::Base.establish_connection
Chris@0 8 (ActiveRecord::Base.connection.tables - skip_tables).each do |table_name|
Chris@0 9 i = "000"
Chris@0 10 File.open("#{RAILS_ROOT}/#{table_name}.yml", 'w' ) do |file|
Chris@0 11 data = ActiveRecord::Base.connection.select_all(sql % table_name)
Chris@0 12 file.write data.inject({}) { |hash, record|
Chris@441 13 # cast extracted values
Chris@441 14 ActiveRecord::Base.connection.columns(table_name).each { |col|
Chris@441 15 record[col.name] = col.type_cast(record[col.name]) if record[col.name]
Chris@441 16 }
Chris@441 17 hash["#{table_name}_#{i.succ!}"] = record
Chris@441 18 hash
Chris@0 19 }.to_yaml
Chris@0 20 end
Chris@0 21 end
Chris@441 22 end