Magento的迁移方法
Magento有很多配置内容,比如说CMS配置页、Static Stock、多语言配置等等,所以做数据迁移很有必要性,下面就说说如何做迁移
这个技术文章是从网上整理的,不过一个很重要的点被疏忽了,我在这里整理一下!
准备工作:
1.要用check-magento看一下服务器是否符合条件,再有就是看看rewrite.mod是否开启,如果没开启,也会影响magento以后的运行!在apache/conf中打开httpd.conf,把#LoadModule rewrite_module modules/mod_rewrite.so的#去掉,重启apache就OK了。
2.在xamppapachebinphp.ini中把extension=php_curl.dll开启
3.如果迁移的目标服务器是Windows,还需要在php.ini中配置一下open_ssl,详见在Windows下发送邮件的博文。
- 用PHPMyadmin备份整个magento数据库,最好生成.sql文件(如果生成SQL后,再复制或粘贴,再存入文件,有时会因为编码不正确,导致错误) 注:这里用逻辑备份方式来备份,有人说采用物理备份/还原也可以,我是没做成功。因为Magento的表大部分都是INNO DB引擎的,而采用物理还原后只能还原MyISAM类型的表
- 打开.sql文件,把约束去掉<INNO DB数据库支持主外键,如果直接运行SQL会导致主外键冲突>
- 去掉约束的语句:
请将下面的代码放在你的SQL代码的顶部:
- SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
- SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
- SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
- SET NAMES utf8;
- SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
- SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
- SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO’;
- SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;
下面恢复约束关系
- SET SQL_MODE=@OLD_SQL_MODE;
- SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
- SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
- SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
- SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
- SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
- SET SQL_NOTES=@OLD_SQL_NOTES;
- 批量修改.SQL文件中的域名或IP地址<如把192.168.1.109:8888/MagentoTest的域名整体替换成192.168.1.92/USDP>
- 到服务器上执行.SQL文件
- 修改/app/etc/local.xml中的数据库连接
- 将所有的程序文件进行上传(如果源文件夹下的var目录下有内容的话,一定要删除,这里都是一些文件缓存。在1-5步,部署完毕后重新生成一下缓存,就会出错。)