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))
|
next if all_records_exist?(:users, importer.map_users_to_import_ids(rows))
|
||||||
|
|
||||||
create_users(rows, total: total_count, offset: offset) do |row|
|
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
|
end
|
||||||
end
|
end
|
||||||
@ -88,7 +92,11 @@ module ImportScripts::PhpBB3
|
|||||||
next if all_records_exist?(:users, importer.map_anonymous_users_to_import_ids(rows))
|
next if all_records_exist?(:users, importer.map_anonymous_users_to_import_ids(rows))
|
||||||
|
|
||||||
create_users(rows, total: total_count, offset: offset) do |row|
|
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
|
end
|
||||||
end
|
end
|
||||||
@ -116,7 +124,11 @@ module ImportScripts::PhpBB3
|
|||||||
next if all_records_exist?(:posts, importer.map_to_import_ids(rows))
|
next if all_records_exist?(:posts, importer.map_to_import_ids(rows))
|
||||||
|
|
||||||
create_posts(rows, total: total_count, offset: offset) do |row|
|
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
|
end
|
||||||
end
|
end
|
||||||
@ -134,7 +146,11 @@ module ImportScripts::PhpBB3
|
|||||||
next if all_records_exist?(:posts, importer.map_to_import_ids(rows))
|
next if all_records_exist?(:posts, importer.map_to_import_ids(rows))
|
||||||
|
|
||||||
create_posts(rows, total: total_count, offset: offset) do |row|
|
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
|
end
|
||||||
end
|
end
|
||||||
@ -167,5 +183,11 @@ module ImportScripts::PhpBB3
|
|||||||
def batches
|
def batches
|
||||||
super(@settings.database.batch_size)
|
super(@settings.database.batch_size)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def log_error(message, e)
|
||||||
|
puts message
|
||||||
|
puts e.message
|
||||||
|
puts e.backtrace.join("\n")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -47,6 +47,11 @@ module ImportScripts::PhpBB3
|
|||||||
protected
|
protected
|
||||||
|
|
||||||
def add_normalization(normalizations, normalization)
|
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)
|
normalizations << normalization unless normalizations.include?(normalization)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -31,6 +31,9 @@ import:
|
|||||||
categories: true # redirects /viewforum.php?f=1 to /c/category-name
|
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
|
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
|
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:
|
avatars:
|
||||||
uploaded: true # import uploaded avatars
|
uploaded: true # import uploaded avatars
|
||||||
@ -50,7 +53,7 @@ import:
|
|||||||
bookmarks: true
|
bookmarks: true
|
||||||
attachments: true
|
attachments: true
|
||||||
private_messages: 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 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
|
# 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_category_links
|
||||||
attr_reader :create_topic_links
|
attr_reader :create_topic_links
|
||||||
attr_reader :create_post_links
|
attr_reader :create_post_links
|
||||||
|
attr_reader :normalization_prefix
|
||||||
|
|
||||||
def initialize(yaml)
|
def initialize(yaml)
|
||||||
@create_category_links = yaml['categories']
|
@create_category_links = yaml['categories']
|
||||||
@create_topic_links = yaml['topics']
|
@create_topic_links = yaml['topics']
|
||||||
@create_post_links = yaml['posts']
|
@create_post_links = yaml['posts']
|
||||||
|
@normalization_prefix = yaml['prefix']
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user