v0.30 Add former_user support to prevent missing posts

This commit is contained in:
David Sainty 2024-07-10 14:12:38 +10:00
parent 1223421028
commit 798d0947c4

View File

@ -1,5 +1,5 @@
# gossamer threads migration-import code # gossamer threads migration-import code
# v0.29 # v0.30
require 'mysql2' require 'mysql2'
require 'open-uri' require 'open-uri'
@ -490,6 +490,29 @@ class GossamerForumsImporter < ImportScripts::Base
# upload # upload
# end # end
# Add 'Former_User' account if not already present
def add_former_user
puts "Adding 'Former User' account if it does not exist..."
former_user = User.find_by(username: 'Former_User')
if former_user.nil?
former_user = User.create!(
username: 'Former_User',
name: 'Former User',
email: 'former_user@example.com',
password: SecureRandom.hex(16),
active: true
)
puts "'Former User' account created with user ID: #{former_user.id}"
# Store the user ID mapping
puts "for insert_user_id_mapping: 0 (former_user) discourse_user.id #{former_user.id}"
insert_user_id_mapping(0, former_user.id)
else
puts "'Former User' account already exists with user ID: #{former_user.id}"
end
end
# Import users from Gossamer Forums to Discourse # Import users from Gossamer Forums to Discourse
def import_users def import_users
@ -893,7 +916,7 @@ class GossamerForumsImporter < ImportScripts::Base
execute_query("SELECT * FROM gforum_Post ORDER BY post_id").each do |row| execute_query("SELECT * FROM gforum_Post ORDER BY post_id").each do |row|
post_id = row['post_id'].to_i post_id = row['post_id'].to_i
# Skip posts that have already been processed # Skip posts that have already been processed
# FIXED PROPERLY FOR FUTURE RUNS # FIXED PROPERLY FOR FUTURE RUNS
# next if post_id < highest_old_post_id # next if post_id < highest_old_post_id
next if post_id <= highest_processed_post_id next if post_id <= highest_processed_post_id
@ -1249,6 +1272,7 @@ class GossamerForumsImporter < ImportScripts::Base
puts "Starting Gossamer Forums import... #{timestamp}" puts "Starting Gossamer Forums import... #{timestamp}"
add_former_user
# import_users # import_users
# export_username_mapping_to_csv("gossamer-migration-username-mapping#{timestamp}") # export_username_mapping_to_csv("gossamer-migration-username-mapping#{timestamp}")