mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 01:16:38 -06:00
Improve phpBB3 importer
* Log errors when mapping of posts, messages, etc. fails * Allow permalink normalizations for old subfolder installation * Disable importing of polls for now. It's broken.
This commit is contained in:
parent
8d5dfe1e01
commit
24369a8166
@ -70,7 +70,11 @@ module ImportScripts::PhpBB3
|
||||
next if all_records_exist?(:users, importer.map_users_to_import_ids(rows))
|
||||
|
||||
create_users(rows, total: total_count, offset: offset) do |row|
|
||||
importer.map_user(row)
|
||||
begin
|
||||
importer.map_user(row)
|
||||
rescue => e
|
||||
log_error("Failed to map user with ID #{row[:user_id]}", e)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -88,7 +92,11 @@ module ImportScripts::PhpBB3
|
||||
next if all_records_exist?(:users, importer.map_anonymous_users_to_import_ids(rows))
|
||||
|
||||
create_users(rows, total: total_count, offset: offset) do |row|
|
||||
importer.map_anonymous_user(row)
|
||||
begin
|
||||
importer.map_anonymous_user(row)
|
||||
rescue => e
|
||||
log_error("Failed to map anonymous user with ID #{row[:user_id]}", e)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -116,7 +124,11 @@ module ImportScripts::PhpBB3
|
||||
next if all_records_exist?(:posts, importer.map_to_import_ids(rows))
|
||||
|
||||
create_posts(rows, total: total_count, offset: offset) do |row|
|
||||
importer.map_post(row)
|
||||
begin
|
||||
importer.map_post(row)
|
||||
rescue => e
|
||||
log_error("Failed to map post with ID #{row[:post_id]}", e)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -134,7 +146,11 @@ module ImportScripts::PhpBB3
|
||||
next if all_records_exist?(:posts, importer.map_to_import_ids(rows))
|
||||
|
||||
create_posts(rows, total: total_count, offset: offset) do |row|
|
||||
importer.map_message(row)
|
||||
begin
|
||||
importer.map_message(row)
|
||||
rescue => e
|
||||
log_error("Failed to map message with ID #{row[:msg_id]}", e)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -167,5 +183,11 @@ module ImportScripts::PhpBB3
|
||||
def batches
|
||||
super(@settings.database.batch_size)
|
||||
end
|
||||
|
||||
def log_error(message, e)
|
||||
puts message
|
||||
puts e.message
|
||||
puts e.backtrace.join("\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -47,6 +47,11 @@ module ImportScripts::PhpBB3
|
||||
protected
|
||||
|
||||
def add_normalization(normalizations, normalization)
|
||||
if @settings.normalization_prefix.present?
|
||||
prefix = @settings.normalization_prefix[%r|^/?(.*?)/?$|, 1]
|
||||
normalization = "/#{prefix.gsub('/', '\/')}\\#{normalization}"
|
||||
end
|
||||
|
||||
normalizations << normalization unless normalizations.include?(normalization)
|
||||
end
|
||||
|
||||
|
@ -31,6 +31,9 @@ import:
|
||||
categories: true # redirects /viewforum.php?f=1 to /c/category-name
|
||||
topics: true # redirects /viewtopic.php?f=6&t=43 to /t/topic-name/81
|
||||
posts: false # redirects /viewtopic.php?p=2455#p2455 to /t/topic-name/81/4
|
||||
# Append a prefix to each type of link, e.g. 'forum' to redirect /forum/viewtopic.php?f=6&t=43 to /t/topic-name/81
|
||||
# Leave it empty if your forum wasn't installed in a subfolder.
|
||||
prefix:
|
||||
|
||||
avatars:
|
||||
uploaded: true # import uploaded avatars
|
||||
@ -50,7 +53,7 @@ import:
|
||||
bookmarks: true
|
||||
attachments: true
|
||||
private_messages: true
|
||||
polls: true
|
||||
polls: false # Don't set this to true. Importing polls is currently broken.
|
||||
|
||||
# When true: each imported user will have the original username from phpBB as its name
|
||||
# When false: the name of each imported user will be blank unless the username was changed during import
|
||||
|
@ -84,11 +84,13 @@ module ImportScripts::PhpBB3
|
||||
attr_reader :create_category_links
|
||||
attr_reader :create_topic_links
|
||||
attr_reader :create_post_links
|
||||
attr_reader :normalization_prefix
|
||||
|
||||
def initialize(yaml)
|
||||
@create_category_links = yaml['categories']
|
||||
@create_topic_links = yaml['topics']
|
||||
@create_post_links = yaml['posts']
|
||||
@normalization_prefix = yaml['prefix']
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user