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

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/)

四、迁移操作(最短停机流程)

  1. 备份旧站点文件:将根目录所有文件移至临时备份文件夹(如old_magento_backup)
  2. 复制子域名文件到根目录:用命令行或FTP工具,将子域名站点的所有文件同步到根域名目录:
    cp -r /path/to/subdomain/* /path/to/root_domain/
    
  3. 覆盖旧数据库:将子域名的数据库备份导入旧站点数据库:
    mysql -u [数据库用户名] -p [旧数据库名] < magento_subdomain_final_backup.sql
    
  4. 清理并重建缓存:
    php bin/magento cache:flush
    php bin/magento cache:clean
    
  5. 重新生成静态文件:
    php bin/magento setup:static-content:deploy -f
    
    (若需指定语言,可添加参数如en_US zh_Hans)
  6. 修复文件权限:
    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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:31:11