From 9e0ac2cc9201dc4e031c8e9a9213b0fa61d82fcf Mon Sep 17 00:00:00 2001 From: Gerhard Schlager Date: Wed, 29 Sep 2021 00:02:01 +0200 Subject: [PATCH] WIP --- script/bulk_import/generic_bulk.rb | 70 +++++++++++++++++++----------- 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/script/bulk_import/generic_bulk.rb b/script/bulk_import/generic_bulk.rb index 19d34e2a91..8afe6a0405 100644 --- a/script/bulk_import/generic_bulk.rb +++ b/script/bulk_import/generic_bulk.rb @@ -22,26 +22,9 @@ class BulkImport::Generic < BulkImport::Base end def execute - import_groups import_users - end - - def import_groups - puts "Importing groups..." - - groups = @db.execute(<<~SQL, last_row_id: @last_imported_group_id) - SELECT * - FROM groups - WHERE ROWID > :last_row_id #{} - ORDER BY ROWID - SQL - - create_groups(groups) do |row| - { - imported_id: row["id"], - name: normalize_text("name") - } - end + import_user_emails + import_topics end def import_users @@ -58,14 +41,49 @@ class BulkImport::Generic < BulkImport::Base { imported_id: row["id"], username: row["username"], - created_at: to_datetime(row["created_at"]), - name: row["name"], email: row["email"], - last_seen_at: to_datetime(row[:"last_seen_at"]), - bio_raw: row["bio"], - location: row["location"], - admin: to_boolean(row["admin"]), - moderator: to_boolean(row["moderator"]) + created_at: to_datetime(row["created_at"]) + } + end + end + + def import_user_emails + puts '', 'Importing user emails...' + + users = @db.execute(<<~SQL, last_row_id: @last_imported_user_id) + SELECT ROWID, * + FROM users + WHERE ROWID > :last_row_id + ORDER BY ROWID + SQL + + create_user_emails(users) do |row| + { + imported_id: row["id"], + imported_user_id: row["id"], + email: row["email"], + created_at: to_datetime(row["created_at"]) + } + end + end + + def import_topics + puts "Importing topics..." + + topics = @db.execute(<<~SQL, last_row_id: @last_imported_topic_id) + SELECT ROWID, * + FROM topics + WHERE ROWID > :last_row_id + ORDER BY ROWID + SQL + + create_topics(topics) do |row| + { + imported_id: row["id"], + title: normalize_text(row["title"]), + user_id: user_id_from_imported_id(row["user_id"]), + created_at: to_datetime(row["created_at"]), + category_id: 1 } end end