After importing my first old forum from phpbb 3 years ago, I’m happy to have motivated an international community forum admin to migrate another, larger forum (180000 members, 1.6M messages) to Discourse.
This forum uses vBulletin5.
The import worked well until user number 71712, the reason being invalid characters in the website field:
:website=>"http://url-redacted.com - æåñòêîå ïîðíî ñìîòðåòü îíëàéí",
The two resulting error messages:
1: from /usr/local/rvm/rubies/ruby-2.6.5/lib/ruby/2.6.0/uri/rfc3986_parser.rb:73:in `parse' /usr/local/rvm/rubies/ruby-2.6.5/lib/ruby/2.6.0/uri/rfc3986_parser.rb:21:in `split': URI must be ascii only "http://url-redacted.com - \u00E6\u00E5\u00F1\u00F2\u00EA\u00EE\u00E5 \u00EF\u00EE\u00F0\u00ED\u00EE \u00F1\u00EC\u00EE\u00F2\u00F0\u00E5\u00F2\u00FC \u00EE\u00ED\u00EB\u00E0\u00E9\u00ED" (URI::InvalidURIError)
1: from /usr/local/rvm/gems/ruby-2.6.5/gems/addressable-2.7.0/lib/addressable/uri.rb:2394:in `defer_validation' /usr/local/rvm/gems/ruby-2.6.5/gems/addressable-2.7.0/lib/addressable/uri.rb:2475:in `validate': Invalid character in host: 'url-redacted.com.com - æåñòêîå ïîðíî ñìîòðåòü îíëàéí' (Addressable::URI::InvalidURIError)
If the URL “must be ascii only”, maybe the field content could be just removed or sanitized instead of throwing an error and stop the script?
I’ll try to have this user removed from the database before trying to import again.
Plus I have another question. The avatars are stored in the database and they were successfully imported.
But what about the attachments? In my case, they are also in the database as it is by default with vBulletin. Will they be imported, or must they be stored as separate fields?