11 May Export and import/restore data for one table using ActiveRecord from Rails console
1 2 3 4 5 6 7 8 9 10 | your_model = User column_names = your_model.column_names - [ 'created_at' , 'updated_at' ] # we can ignore some unimportant fields backup_array = [] your_model.find_each(batch_size: 500 ) do |your_record| p_hash = {} column_names. each do |col_name| p_hash.merge!( "#{col_name}" => your_record.send(col_name)) end backup_array << p_hash end |
This will create an array of hashes like this:
1 | { "id" => 2 , "column_1" => 3 , "column_2" => 4 , "colum_3" => "heriberto@example.com" "} |
In case that something goes wrong you can restore your data doing something like this:
1 2 3 4 5 6 | backup_array. each do |record_hash| find_record = your_model.find(record_hash[ 'id' ]) puts "========== id #{find_record.id} ==========" new_attributes = record_hash.except( 'id' ) find_record.update_columns(new_attributes) end |
As always keep reading, coding and relax
No Comments