Pimcore升级指南:从版本11到12的重大变更解析
前言
Pimcore作为一款强大的开源数字体验平台,其版本迭代带来了诸多重要更新。本文将深入解析Pimcore从11.x到12.x版本的升级注意事项,帮助开发者和系统管理员顺利完成升级过程。
一、许可证变更说明
重要变更:从Pimcore平台版本2025.1开始,社区版许可证从GPLv3变更为Pimcore开放核心许可证(POCL)。2024.4版本是最后一个基于GPLv3的版本。
影响范围:
- 仅影响之前使用GPLv3许可证的社区版用户
- 专业版和企业版/PaaS版用户不受影响
特别注意事项:
- 如果继续使用带有Admin UI Classic bundle的社区版,需要额外购买€1,480的永久许可证
二、系统要求变更
12.x版本要求
- 新增openssl扩展为必需项
- 可选支持Symfony 7.x组件包(6.4版本仍受支持)
- Doctrine DBAL升级至v4(不再支持v3)
11.x版本要求
- Symfony组件升级至6.4
- Doctrine ORM支持v3
三、数据库相关变更
12.x数据库调整
- 默认排序规则变更为
utf8mb4_unicode_520_ci
assets
表中的customSettings
列改为JSON类型- 执行以下SQL更新排序规则:
ALTER DATABASE `your_db` COLLATE utf8mb4_unicode_520_ci;
-- 生成表修改语句
SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` COLLATE utf8mb4_unicode_520_ci;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_db';
11.x数据库优化
- 为
versions
表的public
列添加索引 - 优化权限检查表索引:
users_workspaces_asset
users_workspaces_document
users_workspaces_object
四、功能模块变更
SEO相关
- 重定向规则中的源站点变为可选,未指定时适用于所有域名
文档处理
- 移除Headless Chrome处理器
- 仅支持Gotenberg PHP v2(内置Chromium功能)
- 文档预览使用Gotenberg v8渲染
资源管理
- 图像缩略图支持格式限制为:
pimcore: assets: thumbnails: allowed_formats: ['avif','eps','gif','jpeg','jpg','png','svg','tiff','webm','webp']
- 高分辨率缩放因子限制为5.0(可配置)
数据对象
- 移除
Link
类的unserialize()
方法 - 密码字段仅支持
password_hash
算法 - 数量值范围处理逻辑重构
- URL Slug字段现在可返回null和数组值
五、API与接口变更
工作流系统
getWorkflowByName()
返回类型改为?WorkflowInterface
- 通知方法现在接受
Transition
对象而非字符串标签
自定义报告
- 新增
getColumnsWithMetadata
接口方法 - 新增
getPagination
接口方法 - 修改
getData
参数类型
日志系统
- 日志级别翻译键变更:
'application_logger_log_level_1' => 'Emergency', 'application_logger_log_level_2' => 'Alert', // ...以此类推至8
- 优先级过滤配置范围改为1-8(原为0-7)
六、安装与配置变更
12.x安装器
- 自动生成加密密钥和实例标识符
- 存储位置:
config/local/product_registration.yaml
11.x配置调整
- 静态页面生成器支持子站点主域名:
pimcore: documents: static_page_router: use_main_domain: true
- 依赖关系处理改为消息队列:
framework: messenger: transports: pimcore_dependencies: "doctrine://default?queue_name=pimcore_dependencies"
七、废弃与移除功能
已移除功能
- 低质量图像预览命令的
generator
选项 - 文档日期可编辑项的
outputFormat
配置(改用outputIsoFormat
) Twig\DeferredExtension\DeferredExtension
服务
废弃功能
- TinyMCE编辑器(推荐使用Quill)
pimcore_cache
等Twig扩展MultiSelectOptionsProviderInterface
接口
升级建议
-
准备工作:
- 完整备份数据库和文件系统
- 在测试环境先行验证升级过程
- 检查所有自定义代码与API变更的兼容性
-
升级步骤:
- 更新Composer依赖
- 执行数据库迁移
- 更新配置文件
- 重建索引和缓存
-
特别注意:
- 许可证变更的影响评估
- 数据库排序规则变更可能影响现有数据
- 工作流和自定义报告接口的适配
通过遵循本指南,您将能够顺利完成Pimcore的版本升级,并充分利用新版本带来的各项改进和功能增强。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考