Magento 2主题更换:子站迁根目录并对接旧库无数据丢失方案咨询
Magento 2 子域名站点迁移至根目录并对接旧数据库完整方案
一、前期核心准备(必做,杜绝数据丢失)
- 全量备份旧站点:包括文件系统(根目录所有文件)和数据库,推荐用命令行导出数据库:
mysqldump -u [数据库用户名] -p [旧数据库名] > magento_old_full_backup.sql - 子域名环境和根目录保持完全一致:PHP版本、MySQL版本、Magento核心版本必须匹配,否则会出现兼容性报错
- 子域名站点基于旧数据库搭建:直接导入旧数据库备份作为子域名站点的初始数据,确保后续在子域名做的主题修改、图片上传、信息编辑都基于真实业务数据
二、子域名开发阶段(同步增量数据)
- 在子域名完成新主题部署、客户图片上传、信息更新等所有需求
- 定期同步旧站点增量数据:如果旧站点在3天内产生新订单、新客户注册,每天导出对应增量数据表(如
sales_order、customer_entity),导入到子域名数据库,避免迁移后丢失最新数据
三、迁移前最后检查(缩短停机时间)
- 临时限制旧站点操作:迁移前1小时通知用户暂停提交订单、注册等操作,避免最后时刻产生新数据
- 备份子域名最终状态:导出子域名的文件系统和数据库,作为迁移的源文件
- 修改子域名配置文件:打开
app/etc/env.php,将web/unsecure/base_url和web/secure/base_url替换为根域名(比如从https://dev.yourdomain.com/改为https://yourdomain.com/)
四、迁移操作(最短停机流程)
- 备份旧站点文件:将根目录所有文件移至临时备份文件夹(如
old_magento_backup) - 复制子域名文件到根目录:用命令行或FTP工具,将子域名站点的所有文件同步到根域名目录:
cp -r /path/to/subdomain/* /path/to/root_domain/ - 覆盖旧数据库:将子域名的数据库备份导入旧站点数据库:
mysql -u [数据库用户名] -p [旧数据库名] < magento_subdomain_final_backup.sql - 清理并重建缓存:
php bin/magento cache:flush php bin/magento cache:clean - 重新生成静态文件:
(若需指定语言,可添加参数如php bin/magento setup:static-content:deploy -fen_US zh_Hans) - 修复文件权限:
(find var generated pub/static pub/media app/etc -type f -exec chmod g+w {} + find var generated pub/static pub/media app/etc -type d -exec chmod g+ws {} + chown -R www-data:www-data .www-data需替换为你的服务器运行用户和用户组)
五、迁移后验证
- 访问根域名,检查新主题显示、客户图片及信息是否正常
- 测试核心功能:商品浏览、购物车操作、结账流程、客户登录注册
- 核对数据库数据:对比旧站点备份,确保订单、客户、商品数据完整
- 若出现异常,立即回滚:将临时备份的旧站点文件移回根目录,导入旧数据库备份,快速恢复服务
内容的提问来源于stack exchange,提问作者Mark Papapanos
相关产品推荐
相关产品推荐

