Resource icon

vBulletin Big Board Importer [vBulletin 3 + vBulletin 4] [Paid] 1.5.0

No permission to buy ($150.00)
That version of vB should have that column. It is apparently missing from your database. You need to manually add it using phpmyadmin.


I have added a new column and nomore error.

When i tried to import ( it run for good 4-6hrs) and the database does not seems to import completely. Eventhought the script stopped.

Is there a log for the Export and Import process i can check for find out if there is any problem?
 
I just finished first import. So far so good, still some questions:

1/ This script does not import custom user fields such as: Sex ( male or female), Occupation?
2/ This script does not import Thread prefix? all my thread prefix are gone.

 
Hi is there anything to workaround of fix the issue when vB banned member list has a few permanent ban but those members get imported into XF with temp ban ?

Also some users imported to xf getting temp bans set at their last vb4 infaction date ?
 
Last edited:
I'm back. finally will get our import done this month (I hope). So diving back into the data again.

Note: post titles aren't supported on the import from vB to Xenforo. The solution for me was to concat the posttitle to the post when it exists.
 
Has anyone seen this problem?

I imported my forum. When I try to edit the 1st post in a thread from an imported thread, it won't let me save the edit. I get "The requested thread could not be found".

- I can edit threads I create manually
- I can edit posts that aren't the 1st post in a thread.
- This seems to affect all imported threads

Edit: Turns out this was a bug with a related privately developed plugin. Sorry.
 

Attachments

  • Screen Shot 2015-05-14 at 3.29.39 AM.webp
    Screen Shot 2015-05-14 at 3.29.39 AM.webp
    35.9 KB · Views: 13
Last edited:
Has anyone seen this problem?

I imported my forum. When I try to edit the 1st post in a thread from an imported thread, it won't let me save the edit. I get "The requested thread could not be found".

- I can edit threads I create manually
- I can edit posts that aren't the 1st post in a thread.
- This seems to affect all imported threads

Edit: Turns out this was a bug with a related privately developed plugin. Sorry.

In the code that error can result from acting on a moderated or deleted thread when you don't have appropriate moderator permissions to view threads of these statuses, but then I would expect that you cannot view the threads to begin with. All the same, try rebuilding the user cache:

Admin CP -> Tools -> Rebuild Caches
 
Hi is there anything to workaround of fix the issue when vB banned member list has a few permanent ban but those members get imported into XF with temp ban ?

Also some users imported to xf getting temp bans set at their last vb4 infaction date ?

This is the relevant code in Export.php:

Rich (BB code):
exec('mysql -h' . $this->slaveDbHost . ' ' . $this->sourceDb . ' ' . $this->sourceDBuser . ' ' . $this->sourceDBpassword . ' -N -q -e "SET NAMES binary;SELECT SQL_NO_CACHE user.userid, COALESCE(userban.adminid, 0) AS ban_user_id, COALESCE(userban.bandate, user.lastactivity) AS ban_date, COALESCE((SELECT MAX(expires) FROM ' . self::$tablePrefix . 'infraction as infraction WHERE userid = user.userid AND expires > 0 AND actiondateline = 0), (SELECT expires FROM ' . self::$tablePrefix . 'infraction as infraction WHERE expires > ' . time() . ' AND userid = user.userid ORDER BY expires DESC LIMIT 1), userban.liftdate, 0) AS end_date, COALESCE(userban.reason, \'Rules violations\') AS user_reason, 1 AS triggered FROM ' . self::$tablePrefix . 'user as user LEFT JOIN ' . self::$tablePrefix . 'userban as userban ON (userban.userid = user.userid) WHERE user.usergroupid = ' . self::$bannedGroupVB . ' OR user.infractiongroupid = ' . self::$bannedGroupVB . ' ORDER BY user.userid" ' . self::$extraOutCommand . ' > ' . self::$dataDir . 'xf_user_ban.txt');

It looks to the user's infractions and ban record and pulls the first non-null end date. If you want to prioritize bans over infractions then change the order in that COALESCE function to have userban.liftdate first.
 
This is the relevant code in Export.php:

Rich (BB code):
exec('mysql -h' . $this->slaveDbHost . ' ' . $this->sourceDb . ' ' . $this->sourceDBuser . ' ' . $this->sourceDBpassword . ' -N -q -e "SET NAMES binary;SELECT SQL_NO_CACHE user.userid, COALESCE(userban.adminid, 0) AS ban_user_id, COALESCE(userban.bandate, user.lastactivity) AS ban_date, COALESCE((SELECT MAX(expires) FROM ' . self::$tablePrefix . 'infraction as infraction WHERE userid = user.userid AND expires > 0 AND actiondateline = 0), (SELECT expires FROM ' . self::$tablePrefix . 'infraction as infraction WHERE expires > ' . time() . ' AND userid = user.userid ORDER BY expires DESC LIMIT 1), userban.liftdate, 0) AS end_date, COALESCE(userban.reason, \'Rules violations\') AS user_reason, 1 AS triggered FROM ' . self::$tablePrefix . 'user as user LEFT JOIN ' . self::$tablePrefix . 'userban as userban ON (userban.userid = user.userid) WHERE user.usergroupid = ' . self::$bannedGroupVB . ' OR user.infractiongroupid = ' . self::$bannedGroupVB . ' ORDER BY user.userid" ' . self::$extraOutCommand . ' > ' . self::$dataDir . 'xf_user_ban.txt');

It looks to the user's infractions and ban record and pulls the first non-null end date. If you want to prioritize bans over infractions then change the order in that COALESCE function to have userban.liftdate first.
so like this ?

userban.liftdate.webp

so folks with infractions but not banned, will NOT be placed in ban user group ?
 
in some brief testing, I've had two users already say they can't login using their passwords.

Anyone heard of this? The one user I've questioned so far said he used an extended character in his password. Is this a known issue?

Maybe it's because it's encoded differently in the old database?

arn
 
in some brief testing, I've had two users already say they can't login using their passwords.

Anyone heard of this? The one user I've questioned so far said he used an extended character in his password. Is this a known issue?

Maybe it's because it's encoded differently in the old database?

arn

I can't be sure it's the same issue but...

I recently had this problem with a client's forum. I did some debugging and found that the auth upgrade system was corrupting the auth data somehow. As of XF 1.2 the auth system will attempt to convert other auth schemes (such as the vB scheme) to the more secure default scheme. This happens on login.

I still need to find a solution for this. In the meantime I avoided the problem by creating these non-upgradable auth schemes (attached) and querying the xf_user_authentication table to update the handlers appropriately. In addition, I edited the XenForo_Authentication_Abstract class to specify 'XenForo_Authentication_CoreNoUpgrade' for the default auth scheme:

Code:
	/**
	 * Factory method to create the default authentication handler.
	 *
	 * @return XenForo_Authentication_Abstract
	 */
	public static function createDefault()
	{
		return self::create('XenForo_Authentication_CoreNoUpgrade');
	}

Once I find a proper fix then the Abstract edit can be reversed and the handlers changed (to the equivalent default ones) in the xf_user_authentication table, then everything should work fine. This fix is a stopgap until I find a real fix.
 

Attachments

We are preparing for an import of a vB 3.8.4 forum into XF 1.4.7. 5M posts, 650k members, a lot of PMs. Currently testing the web based importer and it is going to take 24-48 hours total. Maybe a little less if we disable all other mysql activity on the server. My question is, will this importer give us the same end results or is it possible that we will lose some data using this importer vs built in XF? How long do you estimate this importer will take? Is this importer known to work with vB 3.8.x -> XF 1.4.x?
 
We are preparing for an import of a vB 3.8.4 forum into XF 1.4.7. 5M posts, 650k members, a lot of PMs. Currently testing the web based importer and it is going to take 24-48 hours total. Maybe a little less if we disable all other mysql activity on the server. My question is, will this importer give us the same end results or is it possible that we will lose some data using this importer vs built in XF? How long do you estimate this importer will take? Is this importer known to work with vB 3.8.x -> XF 1.4.x?

The end result is the same, but this big board importer requires much more effort to use. I would estimate 2-3 hours of downtime with this importer. But considerable preparation and testing is required with this importer.

In your case, if you don't mind being offline for 24-48 hours then I recommend the web-based importer. But if your site is very sensitive to downtime then use this big board importer.
 
The end result is the same, but this big board importer requires much more effort to use. I would estimate 2-3 hours of downtime with this importer. But considerable preparation and testing is required with this importer.

In your case, if you don't mind being offline for 24-48 hours then I recommend the web-based importer. But if your site is very sensitive to downtime then use this big board importer.
It's worth the money to avoid the extended downtime. I'm primarily concerned about data integrity after the import. By effort/prep/testing are you implying that it will likely fail out of the box and require code tweaks to get it working?
 
It's worth the money to avoid the extended downtime. I'm primarily concerned about data integrity after the import. By effort/prep/testing are you implying that it will likely fail out of the box and require code tweaks to get it working?

Off the top...

1) Upload the Export and Import files.

2) Edit both files to specify the db credentials for XF and vB. Make sure both dbs are accessible by the same MySQL user.

3) Install XF and manually recreate all of your custom groups.

4) Edit the Export file to specify the id maps for the groups.

5) Edit the Export file to specify the various settings near the top like the banned group id, avatar / attachment file paths, import data directory, etc.

6) Possibly edit the code farther down in the Export file to setup the import of custom user fields and paid subscriptions if desired.

7) Run the Export file as a PHP CLI.

8) Run the Import file as a PHP CLI.

9) If you get import errors about invalid string values then you probably need to specify the extra out command in the Export file to do the conversion using a program like iconv.

10) Be mindful that you start with a clean install of XF, and try to avoid installing addons or running XF upgrades on the XF database because this importer is sensitive to column order during the import process.

11) You can re-run the Export + Import any number of times without having to reinstall the XF forum.

This compared to the web-based importer which is basically:

1) Install XF.

2) Run the importer in the Admin CP which will ask you for your vB mysql credentials.

3) Any retries should begin by reinstalling the XF forum.
 
I recently had this problem with a client's forum. I did some debugging and found that the auth upgrade system was corrupting the auth data somehow. As of XF 1.2 the auth system will attempt to convert other auth schemes (such as the vB scheme) to the more secure default scheme. This happens on login.

I still need to find a solution for this. In the meantime I avoided the problem by creating these non-upgradable auth schemes (attached) and querying the xf_user_authentication table to update the handlers appropriately. In addition, I edited the XenForo_Authentication_Abstract class to specify 'XenForo_Authentication_CoreNoUpgrade' for the default auth scheme:

So, if I'm reading this right... you are just keeping vB hashes from being converted to the more secure Xenforo hashes until a later date? This must be a bug in core Xenforo, right? Seems like it should be reproducible. BTW, the second person affected also has a non-ascii character in their password.

arn
 
Top Bottom