如何通过Dockware容器将Shopware升级至6.5版本
Shopware 6.4 升级到 6.5(适配 MySQL 8)分步指南
一、升级前的准备(在原 Dockware 6.4 容器操作)
- 先把当前6.4更到同大版本的最新补丁(比如6.4.20.0+),避免跨版本升级的兼容性坑:
composer update shopware/core --with-all-dependencies - 清理缓存:
bin/console cache:clear - 导出完整数据库备份(Dockware默认用户root,密码root,库名shopware):
mysqldump -u root -proot shopware > shopware_64_backup.sql - 打包备份主题(
public/theme)、媒体文件(public/media),以及插件配置文件(config/packages下相关文件)
二、搭建 MySQL 8 的 Dockware 6.5 环境
- 编写新的
docker-compose.yml,指定6.5版本并绑定MySQL 8:version: "3.7" services: shopware: image: dockware/dev:6.5 ports: - "80:80" - "443:443" - "22:22" - "3306:3306" volumes: - ./shopware_data:/var/www/html environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=shopware - MYSQL_USER=root - MYSQL_PASSWORD=root - 启动容器:
docker-compose up -d - 进入容器确认MySQL版本是8.x:
docker-compose exec shopware mysql -V
三、导入备份并执行数据库迁移(核心步骤)
- 把备份的SQL文件复制到新容器:
docker cp shopware_64_backup.sql [容器ID/名称]:/var/www/html/ - 导入数据库:
docker-compose exec shopware mysql -u root -proot shopware < shopware_64_backup.sql - 执行数据库迁移,解决6.4到6.5的schema差异:
docker-compose exec shopware bin/console database:migrate --all - 更新数据库结构:
docker-compose exec shopware bin/console database:update:structure - 清理并预热缓存:
docker-compose exec shopware bin/console cache:clear docker-compose exec shopware bin/console cache:warmup
四、恢复资源与适配插件
- 把备份的主题、媒体文件复制到新容器对应目录:
docker cp ./theme [容器ID/名称]:/var/www/html/public/ docker cp ./media [容器ID/名称]:/var/www/html/public/ - 检查第三方插件兼容性,卸载不支持6.5的插件,重新安装适配版本:
docker-compose exec shopware bin/console plugin:uninstall [旧插件名] docker-compose exec shopware composer require [适配6.5的插件包] docker-compose exec shopware bin/console plugin:install [新插件名] docker-compose exec shopware bin/console plugin:activate [新插件名] - 编译主题确保兼容:
docker-compose exec shopware bin/console theme:compile
五、验证升级结果
- 登录后台查看系统信息,确认版本为6.5、数据库是MySQL 8.x
- 测试前台核心功能(商品浏览、购物车、结算)和后台管理功能(商品/订单管理、插件配置),确保无报错
内容的提问来源于stack exchange,提问作者saber seyyedi
相关产品推荐
相关产品推荐

