You need to enable JavaScript to run this app. 通过Composer升级TYPO3 9.5到10.4后数据库表缺失问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

通过Composer升级TYPO3 9.5到10.4后数据库表缺失问题咨询

TYPO3 v9.5 升级到 v10.4 问题说明

我需要为客户更新一套 TYPO3 v9.5 站点,在操作正式环境前先搭建演示站点模拟升级流程:首先执行以下命令搭建干净的 9.5 站点:

composer create-project typo3/cms-base-distribution:^9.5 .

完成 TYPO3 网页端安装流程后站点可正常运行。我的目标是将站点至少升级到 10.4 版本,先运行数据库分析工具提示一切正常,再运行升级向导,提示仅需修改数据库排序规则(当前为utf_8_general_ci)无其他操作。随后执行composer update --with-dependencies,提示无任何包需要安装、更新或移除,未触发主版本升级。

尝试多种方案未果后,我直接将composer.json替换为干净 10.4 版本生成的配置文件,再次执行composer update后代码更新成功,但数据库未同步更新,登录时提示表缺失,报错信息如下:

Oops, an error occurred! An exception occurred while executing 'SELECT content FROM cache_hash WHERE (identifier = ?) AND (expires >= ?)' with params ["d07b003d9fce07cd551ada22027bf881", 1626341203]: Table 'complan4.cache_hash' doesn't exist
(中文翻译:发生错误!执行查询语句 SELECT content FROM cache_hash WHERE (identifier = ?) AND (expires >= ?) 时出现异常,参数为 ["d07b003d9fce07cd551ada22027bf881", 1626341203]:complan4 库下的 cache_hash 表不存在)

我已参考 TYPO3 官方文档操作但仍未解决,请问我的升级流程存在什么问题?


升级前后 composer.json 对比

更新后的 composer.json

{
    "repositories": [
        { "type": "composer", "url": "https://composer.typo3.org/" }
    ],
    "name": "typo3/cms-base-distribution",
    "description" : "TYPO3 CMS Base Distribution",
    "license": "GPL-2.0-or-later",
    "config": {
        "platform": {
            "php": "7.2"
        }
    },
    "require": {
        "helhum/typo3-console": "^6.0.0@beta",
        "typo3/cms-about": "^10.4",
        "typo3/cms-backend": "^10.4",
        "typo3/cms-belog": "^10.4",
        "typo3/cms-beuser": "^10.4",
        "typo3/cms-core": "^10.4",
        "typo3/cms-dashboard": "^10.4",
        "typo3/cms-extbase": "^10.4",
        "typo3/cms-extensionmanager": "^10.4",
        "typo3/cms-felogin": "^10.4",
        "typo3/cms-filelist": "^10.4",
        "typo3/cms-fluid": "^10.4",
        "typo3/cms-fluid-styled-content": "^10.4",
        "typo3/cms-form": "^10.4",
        "typo3/cms-frontend": "^10.4",
        "typo3/cms-impexp": "^10.4",
        "typo3/cms-info": "^10.4",
        "typo3/cms-install": "^10.4",
        "typo3/cms-recordlist": "^10.4",
        "typo3/cms-rte-ckeditor": "^10.4",
        "typo3/cms-seo": "^10.4",
        "typo3/cms-setup": "^10.4",
        "typo3/cms-sys-note": "^10.4",
        "typo3/cms-t3editor": "^10.4",
        "typo3/cms-tstemplate": "^10.4",
        "typo3/cms-viewpage": "^10.4"
        
    },
    "scripts":{
        "typo3-cms-scripts": [
            "typo3cms install:fixfolderstructure",
            "typo3cms install:generatepackagestates"
        ],
        "post-autoload-dump": [
            "@typo3-cms-scripts"
        ]
    }
}

更新前的 composer.json

{
    "repositories": [
        { "type": "composer", "url": "https://composer.typo3.org/" }
    ],
    "name": "typo3/cms-base-distribution",
    "description" : "TYPO3 CMS Base Distribution",
    "license": "GPL-2.0-or-later",
    "config": {
        "platform": {
            "php": "7.2"
        }
    },
    "require": {
        "helhum/typo3-console": "^5.5.5",
        "typo3/minimal": "^9.5",
        "typo3/cms-about": "^9.5",
        "typo3/cms-adminpanel": "^9.5",
        "typo3/cms-belog": "^9.5",
        "typo3/cms-beuser": "^9.5",
        "typo3/cms-felogin": "^9.5",
        "typo3/cms-fluid-styled-content": "^9.5",
        "typo3/cms-form": "^9.5",
        "typo3/cms-impexp": "^9.5",
        "typo3/cms-info": "^9.5",
        "typo3/cms-redirects": "^9.5",
        "typo3/cms-reports": "^9.5",
        "typo3/cms-rte-ckeditor": "^9.5",
        "typo3/cms-setup": "^9.5",
        "typo3/cms-seo": "^9.5",
        "typo3/cms-sys-note": "^9.5",
        "typo3/cms-t3editor": "^9.5",
        "typo3/cms-tstemplate": "^9.5",
        "typo3/cms-viewpage": "^9.5"
    },
    "scripts":{
        "typo3-cms-scripts": [
            "typo3cms install:fixfolderstructure",
            "typo3cms install:generatepackagestates"
        ],
        "post-autoload-dump": [
            "@typo3-cms-scripts"
        ]
    }
}

问题解答

你的升级流程存在以下4个核心问题:

  • 错误1:Composer 默认不跨主版本更新
    你原有配置的依赖约束为^9.5,该规则只会更新9.x系列的小版本,不会跳转至10.x大版本,所以第一次执行更新无响应是正常情况。不应该直接替换整个composer.json文件,正确操作是明确指定主版本号执行更新。
  • 错误2:直接替换配置文件跳过兼容性校验
    你替换文件的操作忽略了原有扩展的版本兼容性校验,比如旧配置中的typo3/cms-adminpanel、typo3/cms-redirects等扩展在新配置中被直接移除,会导致后续数据库迁移逻辑遗漏。
  • 错误3:代码更新后未执行数据库迁移
    TYPO3 代码更新后不会自动同步数据库结构,你直接访问站点时缓存表还未创建,才会触发表不存在的报错。
  • 错误4:升级操作顺序颠倒
    你在9.5版本就提前运行了升级向导,升级向导是对应当前代码版本的迁移工具,正确顺序应该是先完成代码层面的版本升级,再运行对应新版本的升级向导和数据库同步操作。

修复步骤

  1. 先回滚到9.5版本的正常状态,清空所有站点缓存
  2. 执行以下命令指定升级核心版本到10.4:
composer require "typo3/cms-core:^10.4" "typo3/minimal:^10.4" "helhum/typo3-console:^6.0" --update-with-all-dependencies
  1. 升级完成后访问/typo3/install路径进入安装工具
  2. 依次执行所有升级向导步骤,再进入数据库比较工具,执行所有建议的表创建、字段变更操作
  3. 清空所有缓存后再访问站点即可恢复正常

内容的提问来源于stack exchange,提问作者Exo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:39:02