TYPO3 升级向导在 DatabaseRowsUpdateWizard 上失败

TYPO3 Upgrade Wizard Fails on DatabaseRowsUpdateWizard

我按照官方指南将项目从 TYPO3 7.6 更新到 ^8。最新的步骤是作曲家更新。我删除了与 ^8 不兼容的 extensions/packages 并更新了可用于 ^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

我很迷茫,不知道要开始解决这个问题 - 非常感谢您的帮助

此类问题通常源于 RTE 字段中损坏的 URL,如错误输出所示:

File ../disclaimer_de.html is not valid (".." and "//" is not allowed in path)

在这种情况下,您应该手动准备数据库和 运行 SQL 语句来替换所有受影响记录中的 broken/obsolete ../ 前缀。示例查询:

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

请注意,此查询 非常 基本,可能会破坏您的数据,因此请确保先 运行 一些 SELECT 语句以确保没有任何中断.还要在手边保留数据库备份。

有时,自定义或 TER 扩展也有 RTE,例如 tt_news,您可能会遇到同样的问题。要解决此问题,您只需要 运行 与相应的 table.

相同的查询