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