class SerializationHelper::Dump
Attributes
filter_table_names[RW]
Public Class Methods
after_table(io, table)
click to toggle source
# File lib/serialization_helper.rb, line 161 def self.after_table(io, table) end
before_table(io, table)
click to toggle source
# File lib/serialization_helper.rb, line 149 def self.before_table(io, table) end
dump(io)
click to toggle source
# File lib/serialization_helper.rb, line 153 def self.dump(io) tables.each do |table| before_table(io, table) dump_table(io, table) after_table(io, table) end end
dump_table(io, table)
click to toggle source
# File lib/serialization_helper.rb, line 171 def self.dump_table(io, table) return if table_record_count(table).zero? dump_table_columns(io, table) dump_table_records(io, table) end
each_table_page(table, records_per_page=1000) { |records| ... }
click to toggle source
# File lib/serialization_helper.rb, line 183 def self.each_table_page(table, records_per_page=1000) total_count = table_record_count(table) pages = (total_count.to_f / records_per_page).ceil - 1 id = table_column_names(table).first boolean_columns = SerializationHelper::Utils.boolean_columns(table) quoted_table_name = SerializationHelper::Utils.quote_table(table) (0..pages).to_a.each do |page| query = Arel::Table.new(table).order(id).skip(records_per_page*page).take(records_per_page).project(Arel.sql('*')) records = ActiveRecord::Base.connection.select_all(query.to_sql) records = SerializationHelper::Utils.convert_booleans(records, boolean_columns) yield records end end
table_column_names(table)
click to toggle source
# File lib/serialization_helper.rb, line 178 def self.table_column_names(table) ActiveRecord::Base.connection.columns(table).map { |c| c.name } end
table_record_count(table)
click to toggle source
# File lib/serialization_helper.rb, line 198 def self.table_record_count(table) ActiveRecord::Base.connection.select_one("SELECT COUNT(*) FROM #{SerializationHelper::Utils.quote_table(table)}").values.first.to_i end
tables()
click to toggle source
# File lib/serialization_helper.rb, line 165 def self.tables all_tables = ActiveRecord::Base.connection.tables.reject { |table| ['schema_info', 'schema_migrations'].include?(table) } filter_table_names ? all_tables.grep(Regexp.new(filter_table_names)) : all_tables end