From 47a1157458d3c3357a0f0731825b1a92005e5e2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Fri, 19 Jun 2020 17:53:06 +0200 Subject: [PATCH] DEV: various bugfixes in bulk importer --- script/bulk_import/base.rb | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/script/bulk_import/base.rb b/script/bulk_import/base.rb index 65e86f4e9a7..1253c2d2e48 100644 --- a/script/bulk_import/base.rb +++ b/script/bulk_import/base.rb @@ -258,10 +258,13 @@ class BulkImport::Base end def post_number_from_imported_id(id) - @post_number_by_post_id[post_id_from_imported_id(id)] + post_id = post_id_from_imported_id(id) + post_id && @post_number_by_post_id[post_id] end + def topic_id_from_imported_post_id(id) - @topic_id_by_post_id[post_id_from_imported_id(id)] + post_id = post_id_from_imported_id(id) + post_id && @topic_id_by_post_id[post_id] end GROUP_COLUMNS ||= %i{ @@ -641,9 +644,8 @@ class BulkImport::Base imported_username, imported_postid = $1, $2 username = @mapped_usernames[imported_username] || imported_username - post_id = post_id_from_imported_id(imported_postid) - post_number = @post_number_by_post_id[post_id] - topic_id = @topic_id_by_post_id[post_id] + post_number = post_number_from_imported_id(imported_postid) + topic_id = topic_id_from_imported_post_id(imported_post_id) if post_number && topic_id "\n[quote=\"#{username}, post:#{post_number}, topic:#{topic_id}\"]\n" @@ -688,8 +690,7 @@ class BulkImport::Base @raw_connection.copy_data(sql, @encoder) do rows.each do |row| begin - mapped = yield(row) - next unless mapped + next unless mapped = yield(row) processed = send(process_method_name, mapped) imported_ids << mapped[:imported_id] unless mapped[:imported_id].nil? imported_ids |= mapped[:imported_ids] unless mapped[:imported_ids].nil? @@ -697,7 +698,8 @@ class BulkImport::Base print "\r%7d - %6d/sec" % [imported_ids.size, imported_ids.size.to_f / (Time.now - start)] if imported_ids.size % 5000 == 0 rescue => e puts "\n" - puts "ERROR: #{e.inspect}" + puts "ERROR: #{e.message}" + puts backtrace.join("\n") end end end @@ -725,8 +727,7 @@ class BulkImport::Base sql = "COPY #{table}_custom_fields (#{table}_id, name, value, created_at, updated_at) FROM STDIN" @raw_connection.copy_data(sql, @encoder) do rows.each do |row| - cf = yield row - next unless cf + next unless cf = yield(row) @raw_connection.put_copy_data [cf[:record_id], name, cf[:value], NOW, NOW] end end