XF 2.0 Issue importing from vBulletin 3.6.8 to XF 2.0.0

sunbby

Member
Previously, I successfully imported our vB 3.6.8 forum to XF 1.5.12. We held off going live to wait for XF 2.0. Now that 2.0 is released I tried to repeat the install and import. I did a new XF install, new SQL database, etc; and also added the XFMG 2.0 Add-On. Then ran the vB 3.6 Importer. It seems to get through almost all of the data but dies near the end of the Posts. During this install I checked "Retain Content Ids". I had tried this earlier on an install where there was 1 user added, and a ton of pictures added to the Gallery; and I didn't check "Retain Content Ids". That time it made it to the Attachments but had a different fatal error. The users/threads/posts eventually show up after I triggered the rebuild cache. Of course none of the attachments are there. The first Import created some data in the /data/attachments folder; the 2nd attempt didn't even create the /data/attachments folder.

There are server errors during the earlier stages but it continues until it gets to the final error.

Not sure where to go from here. We'd like to use 2.0 for some of the new features.

Here's a few of the earlier server errors from the log:
  • ErrorException: [E_NOTICE] Use of undefined constant userid - assumed 'userid'
  • src/XF/Import/Importer/vBulletin.php:1248
  • Generated by:
  • Dec 16, 2017 at 1:30 PM
Stack trace
#0 src/XF/Import/Importer/vBulletin.php(1248): XF::handlePhpError(8, 'Use of undefine...', '/homepages/6/d1...', 1248, Array)
#1 src/XF/Import/Importer/vBulletin.php(1199): XF\Import\Importer\vBulletin->getAvatarFilePath('/homepages/6/d1...', Array)
#2 src/XF/Import/Runner.php(161): XF\Import\Importer\vBulletin->stepAvatars(Object(XF\Import\StepState), Array, 8)
#3 src/XF/Import/Runner.php(75): XF\Import\Runner->runStep('avatars', Object(XF\Import\StepState), 8)
#4 src/XF/Admin/Controller/Import.php(231): XF\Import\Runner->run()
#5 src/XF/Mvc/Dispatcher.php(249): XF\Admin\Controller\Import->actionRun(Object(XF\Mvc\ParameterBag))
#6 src/XF/Mvc/Dispatcher.php(89): XF\Mvc\Dispatcher->dispatchClass('XF:Import', 'run', 'html', Object(XF\Mvc\ParameterBag), 'importData', Object(XF\Admin\Controller\Import), NULL)
#7 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#8 src/XF/App.php(1879): XF\Mvc\Dispatcher->run()
#9 src/XF.php(328): XF\App->run()
#10 admin.php(13): XF::runApp('XF\\Admin\\App')
#11 {main}

---------------

  • ErrorException: [E_NOTICE] Undefined index: prefixid
  • src/XF/Import/Importer/vBulletin.php:2350
  • Generated by:
  • Dec 16, 2017 at 1:33 PM
Stack trace
#0 src/XF/Import/Importer/vBulletin.php(2350): XF::handlePhpError(8, 'Undefined index...', '/homepages/6/d1...', 2350, Array)
#1 src/XF/Import/Runner.php(161): XF\Import\Importer\vBulletin->stepThreads(Object(XF\Import\StepState), Array, 8)
#2 src/XF/Import/Runner.php(75): XF\Import\Runner->runStep('threads', Object(XF\Import\StepState), 8)
#3 src/XF/Admin/Controller/Import.php(231): XF\Import\Runner->run()
#4 src/XF/Mvc/Dispatcher.php(249): XF\Admin\Controller\Import->actionRun(Object(XF\Mvc\ParameterBag))
#5 src/XF/Mvc/Dispatcher.php(89): XF\Mvc\Dispatcher->dispatchClass('XF:Import', 'run', 'html', Object(XF\Mvc\ParameterBag), 'importData', Object(XF\Admin\Controller\Import), NULL)
#6 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#7 src/XF/App.php(1879): XF\Mvc\Dispatcher->run()
#8 src/XF.php(328): XF\App->run()
#9 admin.php(13): XF::runApp('XF\\Admin\\App')
#10 {main}

----------------------------------------------


Here's the one where it dies (this shows up in the browser during the Import, too)

  • XF\Db\DuplicateKeyException: MySQL query error [1062]: Duplicate entry '1' for key 'PRIMARY'
  • src/XF/Db/AbstractStatement.php:212
  • Generated by:
  • Dec 16, 2017 at 1:50 PM
Stack trace
INSERT INTO xf_poll_response (`poll_response_id`, `poll_id`, `response`, `response_vote_count`, `voters`) VALUES (?, ?, ?, ?, ?)
------------

#0 src/XF/Db/Mysqli/Statement.php(174): XF\Db\AbstractStatement->getException('MySQL query err...', 1062, '23000')
#1 src/XF/Db/Mysqli/Statement.php(70): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1062, '23000')
#2 src/XF/Db/AbstractAdapter.php(69): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(146): XF\Db\AbstractAdapter->query('INSERT INTO xf...', Array)
#4 src/XF/Import/Data/EntityEmulator.php(207): XF\Db\AbstractAdapter->insert('xf_poll_respons...', Array)
#5 src/XF/Import/Data/AbstractEmulatedData.php(34): XF\Import\Data\EntityEmulator->insert(1, Object(XF\Db\Mysqli\Adapter))
#6 src/XF/Import/Data/AbstractData.php(99): XF\Import\Data\AbstractEmulatedData->write(1)
#7 src/XF/Import/Data/Poll.php(46): XF\Import\Data\AbstractData->save(1)
#8 src/XF/Import/Data/AbstractData.php(108): XF\Import\Data\Poll->postSave(2, 2)
#9 src/XF/Import/Importer/vBulletin.php(2930): XF\Import\Data\AbstractData->save(2)
#10 src/XF/Import/Runner.php(161): XF\Import\Importer\vBulletin->stepPolls(Object(XF\Import\StepState), Array, 8)
#11 src/XF/Import/Runner.php(75): XF\Import\Runner->runStep('polls', Object(XF\Import\StepState), 8)
#12 src/XF/Admin/Controller/Import.php(231): XF\Import\Runner->run()
#13 src/XF/Mvc/Dispatcher.php(249): XF\Admin\Controller\Import->actionRun(Object(XF\Mvc\ParameterBag))
#14 src/XF/Mvc/Dispatcher.php(89): XF\Mvc\Dispatcher->dispatchClass('XF:Import', 'run', 'html', Object(XF\Mvc\ParameterBag), 'importData', Object(XF\Admin\Controller\Import), NULL)
#15 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#16 src/XF/App.php(1879): XF\Mvc\Dispatcher->run()
#17 src/XF.php(328): XF\App->run()
#18 admin.php(13): XF::runApp('XF\\Admin\\App')
#19 {main}
 
Top