You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Pimcore 6.6升级至6.9.6时遇数据库迁移错误求助

解决Pimcore 6.9.6迁移时JSON数据库类型错误的方法

方法一:注册JSON类型映射

在Pimcore的Doctrine配置文件(Symfony 3/4对应app/config/config.yml,Symfony 5+对应config/packages/doctrine.yaml)中添加类型映射配置,让Doctrine识别MySQL的JSON类型:

doctrine:
    dbal:
        types:
            json: Doctrine\DBAL\Types\JsonType
        mapping_types:
            json: json

执行以下命令清除缓存并重新完成更新与迁移:

php bin/console cache:clear
COMPOSER_MEMORY_LIMIT=-1 composer update
php bin/console doctrine:migrations:migrate

方法二:锁定兼容的Doctrine DBAL版本

Pimcore 6.9.6对Doctrine DBAL版本有特定要求,旧版本DBAL可能不支持MySQL JSON类型。在composer.json中指定兼容版本:

"require": {
    "doctrine/dbal": "^2.13"
}

更新依赖后重新执行迁移:

COMPOSER_MEMORY_LIMIT=-1 composer update doctrine/dbal
php bin/console doctrine:migrations:migrate

方法三:临时修改迁移文件

找到出错的迁移文件src/Migrations/Version20201222101114.php,将其中使用json类型的字段替换为MySQL支持的longtext并标记JSON类型:

// 原代码示例
$this->addSql('CREATE TABLE some_table (config JSON NOT NULL)');

// 修改后
$this->addSql('CREATE TABLE some_table (config LONGTEXT NOT NULL COMMENT \'(DC2Type:json)\')');

保存文件后重新执行迁移命令。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:44:57