XF 2.1 Миграция с IPS 4.0.x на XenForo 2.1.1

Статус
В этой теме нельзя размещать новые ответы.

Efremov

Проверенные
Сообщения
2,928
Решения
42
Реакции
1,774
Баллы
3,690
В общем есть у меня дамп форума на IPB 3.4.9. Хочу перенести его на XF 2.1.1
Изначально делал импорт с ipb в xf 1.5. Импорт проходит но пользователей не переносит(хотя импорт их учеток проходит).
Произвел обновление до IPS 4.0.x и пытаюсь импортировать в XF 2.1.1. В конце вываливается такая ошибка-
Код:
XF\Db\Exception: MySQL statement prepare error [1146]: Table 'testipb.core_reactions' doesn't exist in src/XF/Db/AbstractStatement.php at line 217
XF\Db\AbstractStatement->getException() in src/XF/Db/Mysqli/Statement.php at line 196
XF\Db\Mysqli\Statement->getException() in src/XF/Db/Mysqli/Statement.php at line 39
XF\Db\Mysqli\Statement->prepare() in src/XF/Db/Mysqli/Statement.php at line 54
XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 94
XF\Db\AbstractAdapter->query() in src/XF/Db/AbstractAdapter.php at line 155
XF\Db\AbstractAdapter->fetchAll() in src/addons/XFI/Import/Importer/IpsForums.php at line 2135
XFI\Import\Importer\IpsForums->stepReactions() in src/XF/Import/Runner.php at line 231
XF\Import\Runner->runStep() in src/XF/Import/Runner.php at line 59
XF\Import\Runner->run() in src/XF/Admin/Controller/Import.php at line 234
XF\Admin\Controller\Import->actionRun() in src/XF/Mvc/Dispatcher.php at line 321
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 248
XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 100
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 50
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2177
XF\App->run() in src/XF.php at line 390
XF::runApp() in admin.php at line 13

Подскажите знающие- как это решить?

  • XF\Db\Exception: MySQL statement prepare error [1146]: Table 'testipb.core_reactions' doesn't exist
  • src/XF/Db/AbstractStatement.php:217

SELECT reaction.*, lang_title.word_custom AS title
FROM core_reactions AS reaction
LEFT JOIN core_sys_lang_words AS lang_title ON
(lang_title.lang_id = 1 AND lang_title.word_key = CONCAT('reaction_title_', reaction.reaction_id))
ORDER BY reaction.reaction_id

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL statement...', 1146, '42S02')
#1 src/XF/Db/Mysqli/Statement.php(39): XF\Db\Mysqli\Statement->getException('MySQL statement...', 1146, '42S02')
#2 src/XF/Db/Mysqli/Statement.php(54): XF\Db\Mysqli\Statement->prepare()
#3 src/XF/Db/AbstractAdapter.php(94): XF\Db\Mysqli\Statement->execute()
#4 src/XF/Db/AbstractAdapter.php(155): XF\Db\AbstractAdapter->query('
SELECT reac...', Array)
#5 src/addons/XFI/Import/Importer/IpsForums.php(2135): XF\Db\AbstractAdapter->fetchAll('
SELECT reac...')
#6 src/XF/Import/Runner.php(231): XFI\Import\Importer\IpsForums->stepReactions(Object(XF\Import\StepState), Array, 8)
#7 src/XF/Import/Runner.php(59): XF\Import\Runner->runStep('reactions', Object(XF\Import\StepState), 8)
#8 src/XF/Admin/Controller/Import.php(234): XF\Import\Runner->run()
#9 src/XF/Mvc/Dispatcher.php(321): XF\Admin\Controller\Import->actionRun(Object(XF\Mvc\ParameterBag))
#10 src/XF/Mvc/Dispatcher.php(248): XF\Mvc\Dispatcher->dispatchClass('XF:Import', 'Run', Object(XF\Mvc\RouteMatch), Object(XF\Admin\Controller\Import), NULL)
#11 src/XF/Mvc/Dispatcher.php(100): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XF\Admin\Controller\Import), NULL)
#12 src/XF/Mvc/Dispatcher.php(50): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#13 src/XF/App.php(2177): XF\Mvc\Dispatcher->run()
#14 src/XF.php(390): XF\App->run()
#15 admin.php(13): XF::runApp('XF\\Admin\\App')

array(4) {
["url"] => string(21) "/admin.php?import/run"
["referrer"] => string(41) "http://сайт.org/admin.php?import/"
["_GET"] => array(1) {
["import/run"] => string(0) ""
}
["_POST"] => array(1) {
["_xfToken"] => string(8) "********"
}
}
 
Последнее редактирование модератором:
'testipb.core_reactions' doesn't exist in
Отсутствует таблица.
PHP:
// ########################### STEP: REACTIONS ###############################

    public function stepReactions(StepState $state)
    {
        $mappableTypes = [
            'reactions/react_like.png' => 1,
            'reactions/react_haha.png' => 3,
            'reactions/react_sad.png' => 5
        ];

        $reactions = $this->sourceDb->fetchAll("
            SELECT reaction.*, lang_title.word_custom AS title
            FROM core_reactions AS reaction
            LEFT JOIN core_sys_lang_words AS lang_title ON
                (lang_title.lang_id = 1 AND lang_title.word_key = CONCAT('reaction_title_', reaction.reaction_id))
            ORDER BY reaction.reaction_id
        ");

        foreach ($reactions AS $reaction)
        {
            $oldId = $reaction['reaction_id'];

            if (isset($mappableTypes[$reaction['reaction_icon']]))
            {
                // same or similar to our default reactions so do not import and map to ours
                $this->logHandler('XF:Reaction', $oldId, $mappableTypes[$reaction['reaction_icon']]);
            }
            else
            {
                /** @var \XF\Import\Data\Reaction $import */
                $import = $this->newHandler('XF:Reaction');
                $import->preventRetainIds(); // necessary due to default reactions

                $import->bulkSet($this->mapXfKeys($reaction, [
                    'reaction_score' => 'reaction_value',
                    'display_order' => 'reaction_position',
                    'active' => 'reaction_enabled'
                ]));
                $import->setTitle($reaction['title']);

                $sourceFile = sprintf(
                    '%s/uploads/%s',
                    $this->baseConfig['ips_path'],
                    $reaction['reaction_icon']
                );

                if (file_exists($sourceFile) && is_readable($sourceFile))
                {
                    $import->setSourceImagePath($sourceFile, $reaction['reaction_icon']);
                }

                $newId = $import->save($oldId);
                if ($newId)
                {
                    $state->imported++;
                }
            }
        }

        return $state->complete();
    }
Как видим, вопрос в том, почему её там нет?
 
Хм, можно-то можно, но вот изначальные Ваши действия нам неизвестны, пока не возникало проблем такого рода, переносилось правда всё с третьего и через первую ветку, но всё корректно.
 
Импортнул данную таблицу с другого форума. Проблема изменилась.

  • InvalidArgumentException: Attempted to convert NULL to string/binary [phrase_text]
  • src/XF/Mvc/Entity/Entity.php:740

Код:
#0 src/XF/Mvc/Entity/Entity.php(618): XF\Mvc\Entity\Entity->_castValueToType(NULL, 'phrase_text', 5, Array)
#1 src/XF/Mvc/Entity/Entity.php(548): XF\Mvc\Entity\Entity->set('phrase_text', NULL)
#2 src/XF/Import/Data/AbstractData.php(240): XF\Mvc\Entity\Entity->__set('phrase_text', NULL)
#3 src/XF/Import/Data/Reaction.php(45): XF\Import\Data\AbstractData->insertMasterPhrase('reaction_title....', NULL)
#4 src/XF/Import/Data/AbstractData.php(135): XF\Import\Data\Reaction->postSave(2, 16)
#5 src/addons/XFI/Import/Importer/IpsForums.php(2176): XF\Import\Data\AbstractData->save(2)
#6 src/XF/Import/Runner.php(231): XFI\Import\Importer\IpsForums->stepReactions(Object(XF\Import\StepState), Array, 8)
#7 src/XF/Import/Runner.php(59): XF\Import\Runner->runStep('reactions', Object(XF\Import\StepState), 8)
#8 src/XF/Admin/Controller/Import.php(234): XF\Import\Runner->run()
#9 src/XF/Mvc/Dispatcher.php(321): XF\Admin\Controller\Import->actionRun(Object(XF\Mvc\ParameterBag))
#10 src/XF/Mvc/Dispatcher.php(248): XF\Mvc\Dispatcher->dispatchClass('XF:Import', 'Run', Object(XF\Mvc\RouteMatch), Object(XF\Admin\Controller\Import), NULL)
#11 src/XF/Mvc/Dispatcher.php(100): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XF\Admin\Controller\Import), NULL)
#12 src/XF/Mvc/Dispatcher.php(50): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#13 src/XF/App.php(2177): XF\Mvc\Dispatcher->run()
#14 src/XF.php(390): XF\App->run()
#15 admin.php(13): XF::runApp('XF\\Admin\\App')
#16 {main}

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

Previous InvalidArgumentException: Attempted to convert NULL to string/binary - src/XF/Mvc/Entity/ValueFormatter.php:130
#0 src/XF/Mvc/Entity/Entity.php(736): XF\Mvc\Entity\ValueFormatter->castValueToType(NULL, 5, Array)
#1 src/XF/Mvc/Entity/Entity.php(618): XF\Mvc\Entity\Entity->_castValueToType(NULL, 'phrase_text', 5, Array)
#2 src/XF/Mvc/Entity/Entity.php(548): XF\Mvc\Entity\Entity->set('phrase_text', NULL)
#3 src/XF/Import/Data/AbstractData.php(240): XF\Mvc\Entity\Entity->__set('phrase_text', NULL)
#4 src/XF/Import/Data/Reaction.php(45): XF\Import\Data\AbstractData->insertMasterPhrase('reaction_title....', NULL)
#5 src/XF/Import/Data/AbstractData.php(135): XF\Import\Data\Reaction->postSave(2, 16)
#6 src/addons/XFI/Import/Importer/IpsForums.php(2176): XF\Import\Data\AbstractData->save(2)
#7 src/XF/Import/Runner.php(231): XFI\Import\Importer\IpsForums->stepReactions(Object(XF\Import\StepState), Array, 8)
#8 src/XF/Import/Runner.php(59): XF\Import\Runner->runStep('reactions', Object(XF\Import\StepState), 8)
#9 src/XF/Admin/Controller/Import.php(234): XF\Import\Runner->run()
#10 src/XF/Mvc/Dispatcher.php(321): XF\Admin\Controller\Import->actionRun(Object(XF\Mvc\ParameterBag))
#11 src/XF/Mvc/Dispatcher.php(248): XF\Mvc\Dispatcher->dispatchClass('XF:Import', 'Run', Object(XF\Mvc\RouteMatch), Object(XF\Admin\Controller\Import), NULL)
#12 src/XF/Mvc/Dispatcher.php(100): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XF\Admin\Controller\Import), NULL)
#13 src/XF/Mvc/Dispatcher.php(50): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#14 src/XF/App.php(2177): XF\Mvc\Dispatcher->run()
#15 src/XF.php(390): XF\App->run()
#16 admin.php(13): XF::runApp('XF\\Admin\\App')
#17 {main}

Код:
array(4) {
  ["url"] => string(21) "/admin.php?import/run"
  ["referrer"] => string(41) "http://....org/admin.php?import/"
  ["_GET"] => array(1) {
    ["import/run"] => string(0) ""
  }
  ["_POST"] => array(1) {
    ["_xfToken"] => string(8) "********"
  }
}
 
ещё не ясно, как Вы ещё туда импортнули
Экспортировал с базы тестового форума на IPS таблицу, и импортировал в эту базу.

Попробовал перезапустить импорт. Выбрал только импорт разделов и тем. А импортер все равно импортировать пользователей начал. Это баг или как?
 

Вложения

  • Снимок.PNG
    Снимок.PNG
    69.4 KB · Просмотры: 14
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу