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.
相同的查询
我按照官方指南将项目从 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.