Сбой мастера обновления TYPO3 в DatabaseRowsUpdateWizard - PullRequest
0 голосов
/ 02 мая 2019

Я обновил проект с TYPO3 7.6 до ^ 8, следуя официальному руководству.последние шаги были обновлением композитора.Я удалил расширения / пакеты, несовместимые с ^ 8, и обновил доступные для ^ 8.Я могу связаться с инструментом установки, административным бэкендом TYPO3 и внешним интерфейсом (с ошибками).так что я оказался на шаге, где я должен был использовать мастера обновления, предоставляемые инструментом установки.я выполнил несколько мастеров без каких-либо проблем, но потом столкнулся с одной проблемой - сначала я попытался запустить DatabaseRowsUpdateWizard в инструменте установки, но это не удалось с ошибкой памяти - я попробовал подход cli с обработкой

php -d memory_limit=-1 vendor/bin/typo3cms upgrade:wizard DatabaseRowsUpdateWizard

сработало, но в результате возникла следующая ошибка:

[ Helhum\Typo3Console\Mvc\Cli\FailedSubProcessCommandException ]


#1485130941: Executing command "upgrade:subprocess" failed (exit code: "1")
 thrown in file vendor/helhum/typo3-console/Classes/Install/Upgrade/UpgradeHandling.php
 in line 284

команда изначально не выполнена:

'/usr/bin/php7.2' 'vendor/bin/typo3cms' 'upgrade:subprocess' '--command' 'executeWizard' '--arguments' 'a:3:{i:0;s:24:"DatabaseRowsUpdateWizard";i:1;a:0:{}i:2;b:0;}'

и вот исключение подпроцесса:

[ Sub-process exception: TYPO3\CMS\Core\Resource\Exception\InvalidPathException ]


#1320286857: File ../disclaimer_de.html is not valid (".." and "//" is not allowed in path).
 thrown in file typo3/sysext/core/Classes/Resource/Driver/AbstractHierarchicalFilesystemDriver.php
 in line 71

imв значительной степени потерял и не знаю, должны были начать это исправлять - помощь очень ценится

1 Ответ

1 голос
/ 02 мая 2019

Подобные проблемы обычно возникают из-за неправильных URL-адресов в полях RTE, что можно увидеть в выводе ошибки:

Файл ../disclaimer_de.html недопустим («..» и «//» не разрешены в пути)

В этом случае вы должны вручную подготовить базу данных и выполнить операторы SQL, которые заменяют прерванный / устаревший префикс ../ из всех затронутых записей. Пример запроса:

UPDATE tt_content
SET bodytext = REPLACE(bodytext, 'href="../', 'href="');
WHERE bodytext LIKE '%href="../';

Обратите внимание, что этот запрос очень базовый и может уничтожить ваши данные, поэтому сначала убедитесь, что вы выполнили несколько операторов SELECT, чтобы ничего не сломалось. Также держите резервную копию своей базы данных под рукой.

...