To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / lib / tasks / .svn / text-base / extract_fixtures.rake.svn-base @ 441:cbce1fd3b1b7

History | View | Annotate | Download (863 Bytes)

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