exporting posts...
postssh: aBULW: command not found
sh: /home/sites/mixspace/public_html/importData/xf_post.txt: No such file or directory
rm: cannot remove `/home/sites/mixspace/public_html/importData/xf_post_*': No such file or directory
wc: /home/sites/mixspace/public_html/importData/xf_post.txt: No such file or directory
(0 records in 0.01s)...
split: cannot open `/home/sites/mixspace/public_html/importData/xf_post.txt' for reading: No such file or directory
An exception occurred: unlink(/home/sites/mixspace/public_html/importData/xf_post.txt): No such file or directory in /home/mixspace/public_html/Export.php on line 821
#0 [internal function]: XenForo_Application::handlePhpError(2, 'unlink(/home/si...', '/home/mixspace/...', 821, Array)
#1 /home/mixspace/public_html/Export.php(821): unlink('/home/sites/mix...')
#2 /home/mixspace/public_html/Export.php(1900): DigitalPointExporter->posts()
#3 {main}
/attachment_folder/u/s/e/r/i/d/{file-id}.attach
/{path-you-set-in-the-vbulletin-options}/userid/{file-id}.attach
if (self::$attachFile AND file_exists(self::$attachFile . implode('/', preg_split('//', $attachment['user_id'], -1, PREG_SPLIT_NO_EMPTY)) . '/' . strval($attachment['filesysid']) . '.attach'))
{
$attachment['file'] = file_get_contents(self::$attachFile . implode('/', preg_split('//', $attachment['user_id'], -1, PREG_SPLIT_NO_EMPTY)) . '/' . strval($attachment['filesysid']) . '.attach');
}
else
if (self::$attachFile AND file_exists(self::$attachFile . '/' . $attachment['user_id'] . '/' . strval($attachment['filesysid']) . '.attach'))
{
$attachment['file'] = file_get_contents(self::$attachFile . '/' . $attachment['user_id'] . '/' . strval($attachment['filesysid']) . '.attach');
}
else
implode('/', preg_split('//', $attachment['user_id'], -1, PREG_SPLIT_NO_EMPTY))
$attachment['user_id']
'/'.
implode('/', str_split($attachment['filedata_userid']))
$attachment['filedata_userid']
To my knowledge, yes.@NixFifty have you got all the requirements installed as listed in the resource description?
Solution for people trying to import attachments and getting the dreaded "MISSING DATA!!!" error, even though everything seems to be in order*
* meaning that the folder path is ok and has the / at the end in the export.php file + the user and group permissions are set accordingly
There are two folder structures that vBulletin can use when storing attachments in the filesystem:
1. The default one that looks like
PHP:/attachment_folder/u/s/e/r/i/d/{file-id}.attach
So if the userid is 1234, the attachment path for a file will be /public_html/attachment_folder/1/2/3/4/1.attach.
This is what both the official importer and the Big Board Importer (BBI) look for by default.
2. A legacy one, from times long forgotten, where the user id isn't broken up into digits sub-folders and looks like
PHP:/{path-you-set-in-the-vbulletin-options}/userid/{file-id}.attach
So in the real world it would translate to /public_html/attachment_folder/1234/1.attach
Since the BBI doesn't recognize the #2 folder structure by default, you'll get the MISSING DATA!!! error.
Thankfully, @Mike provided us with a solution for the default importer which we then applied to the BBI:
1. Open the export.php file
2. Go to line 1307 to find the following code block:
PHP:if (self::$attachFile AND file_exists(self::$attachFile . implode('/', preg_split('//', $attachment['user_id'], -1, PREG_SPLIT_NO_EMPTY)) . '/' . strval($attachment['filesysid']) . '.attach')) { $attachment['file'] = file_get_contents(self::$attachFile . implode('/', preg_split('//', $attachment['user_id'], -1, PREG_SPLIT_NO_EMPTY)) . '/' . strval($attachment['filesysid']) . '.attach'); } else
3. Replace said code block with:
PHP:if (self::$attachFile AND file_exists(self::$attachFile . '/' . $attachment['user_id'] . '/' . strval($attachment['filesysid']) . '.attach')) { $attachment['file'] = file_get_contents(self::$attachFile . '/' . $attachment['user_id'] . '/' . strval($attachment['filesysid']) . '.attach'); } else
4. Profit
For those who want to understand what we did, we changed the
PHP:implode('/', preg_split('//', $attachment['user_id'], -1, PREG_SPLIT_NO_EMPTY))
code (the one that tells the importer to "break apart" the user id when creating the attachment path) with
PHP:$attachment['user_id']
thus telling the importer to read the user id whole.
We then added a
PHP:'/'.
at the front of the user id to make sure that the path would be generated correctly (yes, including the period, that's what's called a concatenation operator. You can read more about it here).
Otherwise, the generated path would have been
/public_html/attachment_folder1234/1.attach (notice how the userid and attachment path are fused).
-----------------------------------------------------------------------------------
If you're having the same attachments issues when using the official importer:
1. Open library/XenForo/Importer/vBulletin4x.php
2. Go to line 92
3. Change
PHP:implode('/', str_split($attachment['filedata_userid']))
to
PHP:$attachment['filedata_userid']
4. Profit
Once again, all credit goes to @Mike for pointing us in the right direction regarding the fix for this problem.
Code:exporting posts... postssh: aBULW: command not found
Yeah, same error if they're removed.@NixFifty Have you got trailing slashes on your intermediate data paths?
(Again, just a thought)
In case it's any help, we've got trailing slashes, and to avoid argument, I chmod'd the intermedia folder with all the sevens, and invoke the script as root.
I'm having fun trying to import now...
I get various warnings about unexpected or missing values in certain columns/rows, but I'm guessing they're not critical as the thread & post counts look right; but when it comes to users I'm getting an error that the user authentication table can't be repaired - this is something to do with InnoDB, right?
I'm quite lost from the outset on this one - after the import I can log-in to the XF Admin CP with my ex-VB credentials, but most of the controls are missing, and at the front end I get 'You do not have permission to view this page or perform this action.' wherever I try to go.
I'll start reading this thread from the front, but if anyone's got a suggestion while I am, I'd be most grateful.
Thanks,
R
EDIT: Thinking out loud (I'm sorry to do it in the thread!)... Should I be switching tables to MyISAM before I run the import?
R
$config['superAdmins'] - default: '1'
This is a comma-separated list of user IDs that are considered super administrators. Super administrators can create/delete other administrators and always access all parts of the control panel.
I get this when trying to import avatars:
Error Info
ErrorException: file_put_contents(importData/avatar_temp): failed to open stream: Is a directory - Export.php:1528
Generated By: Unknown Account, 4 minutes ago
Stack Trace
#0 [internal function]: XenForo_Application::handlePhpError(2, 'file_put_conten...', '/home/mixspace/...', 1528, Array)
#1 /home/mixspace/public_html/Export.php(1528): file_put_contents('importData/avat...', '??????JFIF?????...')
#2 /home/mixspace/public_html/Export.php(1894): DigitalPointExporter->avatars()
#3 {main}
Server Error
Mysqli statement execute error : Got error 28 from storage engine
Zend_Db_Statement_Mysqli->_execute() in Zend/Db/Statement.php at line 297
Zend_Db_Statement->execute() in Zend/Db/Adapter/Abstract.php at line 479
Zend_Db_Adapter_Abstract->query() in XenForo/Model.php at line 219
XenForo_Model->fetchAllKeyed() in XenForo/Model/Conversation.php at line 116
XenForo_Model_Conversation->getConversationRecipients() in XenForo/DataWriter/ConversationMaster.php at line 417
XenForo_DataWriter_ConversationMaster->rebuildRecipients() in XenForo/Deferred/Conversation.php at line 28
XenForo_Deferred_Conversation->execute() in XenForo/Model/Deferred.php at line 252
XenForo_Model_Deferred->runDeferred() in XenForo/Model/Deferred.php at line 378
XenForo_Model_Deferred->_runInternal() in XenForo/Model/Deferred.php at line 331
XenForo_Model_Deferred->run() in XenForo/ControllerAdmin/Tools.php at line 147
XenForo_ControllerAdmin_Tools->actionRunDeferred() in XenForo/FrontController.php at line 347
XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
XenForo_FrontController->run() in /var/www/html/xen/admin.php at line 13
We use essential cookies to make this site work, and optional cookies to enhance your experience.