Mercurial > hg > soundsoftware-site
annotate .svn/pristine/40/4007bed662ec7349eb8fd5e92146039b21fc6ef7.svn-base @ 1628:9c5f8e24dadc live tip
Quieten this cron script
author | Chris Cannam |
---|---|
date | Tue, 25 Aug 2020 11:38:49 +0100 |
parents | cbb26bc654de |
children |
rev | line source |
---|---|
Chris@909 | 1 desc 'Create YAML test fixtures from data in an existing database. |
Chris@909 | 2 Defaults to development database. Set RAILS_ENV to override.' |
Chris@909 | 3 |
Chris@909 | 4 task :extract_fixtures => :environment do |
Chris@909 | 5 sql = "SELECT * FROM %s" |
Chris@909 | 6 skip_tables = ["schema_info"] |
Chris@909 | 7 ActiveRecord::Base.establish_connection |
Chris@909 | 8 (ActiveRecord::Base.connection.tables - skip_tables).each do |table_name| |
Chris@909 | 9 i = "000" |
Chris@909 | 10 File.open("#{Rails.root}/#{table_name}.yml", 'w' ) do |file| |
Chris@909 | 11 data = ActiveRecord::Base.connection.select_all(sql % table_name) |
Chris@909 | 12 file.write data.inject({}) { |hash, record| |
Chris@909 | 13 # cast extracted values |
Chris@909 | 14 ActiveRecord::Base.connection.columns(table_name).each { |col| |
Chris@909 | 15 record[col.name] = col.type_cast(record[col.name]) if record[col.name] |
Chris@909 | 16 } |
Chris@909 | 17 hash["#{table_name}_#{i.succ!}"] = record |
Chris@909 | 18 hash |
Chris@909 | 19 }.to_yaml |
Chris@909 | 20 end |
Chris@909 | 21 end |
Chris@909 | 22 end |