在本系列的上一篇文章中,我概述了Magento迁移过程,并讨论了在计划迁移时要考虑的一些利弊。 在本文中,我们将对实际迁移过程的技术细节进行更深入的研究。
由于我们已经按照上一篇文章中的说明安装了Magento迁移工具,下一步是正确配置它以成功进行迁移。 在继续配置迁移工具之前,您需要检查迁移工具版本是否与Magento安装版本匹配,如果不匹配,则需要更新迁移工具版本。
如果要迁移到Magento 2.0.0版,则需要具有迁移工具2.0.0版,同样,如果您具有Magento 2.0.2版,则需要迁移工具2.0.2版。 如果版本不匹配,则迁移将不会成功,因为不同的Magento版本可能具有不同的数据库结构,并且需要不同的映射机制。
要检查新的Magento安装的版本,请使用以下命令:
php /bin/magento --version
现在检查Magento迁移工具的版本。 为此,请转到您的迁移工具目录,然后打开composer.json文件。 该文件的位置如下所示:
Magento root directory/vendor/magento/data-migration-tool/composer.json
在此文件中,找到version
的值,这就是您的迁移工具版本。 如果Magento的版本与迁移工具匹配,那么您都可以继续进行下一步。 但是,如果没有,则需要更改迁移工具的版本以匹配Magento的版本。
在继续进行版本升级之前,请备份data-migration-tool目录,因为升级过程将修改此文件夹的内容,如果出现问题,如果您不这样做,则可能无法找回原始文件夹。没有备份。 备份完成后,只需转到服务器中的Magento根目录,然后输入以下命令:
composer require magento/data-migration-tool:2.0.2
命令中的最后一件事是您的Magento版本。 在这种情况下,它是2.0.0。 如果您的不同,请相应地进行更改。
现在,我们已经确保了具有匹配版本的Magento和迁移工具,是时候正确配置迁移工具了。
要配置Magento迁移,您需要创建/更新配置文件和映射文件。 您可以在以下文件夹位置找到这些文件:
Magento2 root directory/vendor/magento/data-migration-tool/etc/ce-to-ce
在本文中,我演示了从社区版本到社区版本的迁移,因此上述路径中的最后一个文件夹是ce-to-ce,但是如果要处理企业版,它将是ee而不是ce。
在启动任何迁移之前,必须创建配置正确的config.xml文件。 要创建config.xml文件,请登录您的Magento服务器,然后移至以下目录:
使用此命令创建配置文件:
cp config.xml.dist config.xml
现在,一旦创建,就可以在任何文本编辑器中将其打开,并放入以下示例代码:
magento1
Look at Magento 1 root directory/app/etc/local.xml
在此,源数据库和目标数据库的host , name和user字段都是必填字段。 另外, crypt_key字段是必填字段。 其余字段(如数据库密码和source_prefix)是可选的。
crypt_key字段应具有与在以下目录中的local.xml文件的密钥标记中可以找到的密钥相同的密钥:
现在我们已经创建了config.xml文件,下一步是更新映射文件。 迁移工具使用映射文件执行从Magento 1到Magento 2的数据库映射。映射文件包含有关更改数据库的表名和字段名的信息,可以忽略的表名和字段以及其他类似信息。 您可以在以下目录中找到映射文件:
浏览这些文件,如果需要更新其中任何一个,请复制需要编辑的文件,然后从名称中删除.dist。 例如,如果您使用的是map.xml.dist文件,请将该文件的副本命名为map.xml。 完成对它们的编辑后,需要在可选节点中使用新文件名更新config.xml文件。 如果添加了map.xml文件,则先前创建的config.xml文件的代码将如下所示:
magento1
Look at Magento 1 root directory/app/etc/local.xml
etc/ce-to-ce/1.9.1.0/map.xml.dist
现在,我们已经完成了所有迁移计划,安装,配置等工作,现在让我们开始迁移过程。 为此,您需要运行迁移工具。 要运行迁移工具,请以具有写权限的用户身份输入您的Magento服务器。 要从任何目录运行Magento命令,请将Magento根目录/ bin添加到系统路径,或者您可以通过以下方式运行命令:
cd /bin
使用以下命令开始迁移:
bin/magento migrate:{}
在这里,模式可以是设置,数据或增量,并且config.xml文件的路径将是绝对路径。
您需要按以下顺序执行迁移:
迁移设置将迁移与商店,网站等相关的付款,税收和运输设置。要运行设置迁移,请运行以下命令:
bin/magento migrate:settings{}
这可能不会迁移所有数据。 您需要使用管理面板登录,以手动检查是否正确传输了所有内容。 如果有任何问题,您可以重新执行此语句,但是这一次,请使用reset参数从头开始迁移。 该命令将如下所示:
bin/magento migrate:settings [-r|--reset] {}
设置完成后,接下来开始迁移数据。 该过程与以前相同,只是更改了一个参数。 要执行的命令如下所示:
bin/magento migrate:data {}
运行数据迁移时,迁移工具会检查旧的和较新的Magento版本的数据库表和字段是否一致。 如果不一致,它将尝试从映射文件中查找信息。
如果在该处找不到它,则会抛出一个错误,提示您麻烦的表名和字段名。 当您使用其表结构与Magento 2数据库结构不兼容的Magento扩展时,通常会出现此问题。 在这种情况下,您既可以安装扩展版的Magento 2版本,也可以通过在map.xml
文件中添加
标记来忽略这些文件。
解决问题后,可以重新运行migration data命令。 这里要记住的一件事是,迁移工具会在迁移时跟踪进度,一旦您重新运行它,它就会从之前的位置恢复。 要强制从头开始,可以使用如下所示的reset命令:
bin/magento migrate:data [-r|--reset] {}
下一步是迁移更改(增量)。
如本系列的上一篇文章所述,在开始迁移过程之前,您应该停止Magento 1 cron作业以及Magento 1管理面板中除必要的订单管理问题以外的所有活动,并且不要恢复活动,直到时间迁移过程完成。
尽管在开始迁移过程之前,您将在Magento 1管理控制台中停止大多数活动,但仍会遇到一些订单处理问题。 同样,在此期间可能会发生新的用户评论或客户资料的更改。 现在,您需要使用增量更新来迁移数据。
要迁移增量更新,请运行以下命令:
bin/magento migrate:delta [-r|--reset] {}
在此有必要记住,除非使用CTRL + C命令中止增量迁移,否则它会连续运行。 这里要注意的另一件事是,该工具仅迁移Magento自己的模块生成的数据。 如果第三方扩展同时生成/更新某些数据,则不会迁移这些数据。 如果您也希望迁移数据,则需要更新Magento 2配置文件。 这就需要对数据迁移工具的内部规范有一些高级的了解,这超出了本文的范围。
再次参考本系列的第一篇文章 ,尽管迁移工具将完成大部分繁重的迁移过程,但是您需要手动转移三种类型的文件:
要传输媒体文件,请首先转到您的Magento 1管理面板。 转到系统>配置>高级>系统。
在“ 媒体的存储配置”选项卡下,从列表中选择媒体数据库 ,然后单击“ 同步” 。
现在转到Magento 2管理面板, 商店>配置>高级>系统 。
在“介质的存储配置”下 ,选择介质数据库 ,然后单击“ 同步” 。
这将处理存储在Magento数据库中的媒体文件。 现在,要传输其他媒体文件,请从Magento 1根目录复制整个媒体文件夹,然后将其粘贴并合并到Magento 2的此位置:
Magento 2 root directory/pub/media
这里要注意的一件事很重要,就是在复制时,您不应替换.htaccess文件。 最好在媒体传输之前备份.htaccess文件的副本,以免意外替换该文件。
要传输商店的主题文件,您需要将.phtml,js,css和xml文件传输到Magento 2中的适当位置。文件夹结构与Magento 1不同。Magento开发文档中的这篇文章将给出您可以轻松了解Magento 2的新主题文件夹结构。
除了手动传输主题文件之外,您还需要手动重新创建网站上使用的REST和SOAP Web服务的凭据,还需要重新创建管理用户并设置其访问权限。
既然您已经完成了迁移所需的所有步骤,那么拥有完整功能的Magento 2网站的最后几件事是要做的。
到目前为止,如果您做到了,那就恭喜! 您的所有新Magento 2商店已准备就绪。 您花时间和精力将网站转移到较新的Magento版本确实值得。 Magento的这一新版本提供了增强的性能和可伸缩性,可提高转换率的新功能以及业务敏捷性和生产率的提高。 您的网站已准备好使用这些增强功能进入新的水平。
翻译自: https://code.tutsplus.com/articles/migration-to-magento-2-migrating-the-site--cms-25988