Статьи

Миграция в Magento 2: Миграция сайта

В предыдущей статье этой серии я дал обзор процесса миграции в Magento и обсудил некоторые плюсы и минусы, которые следует учитывать при планировании миграции. В этой статье мы немного углубимся в грязные технические детали фактического процесса миграции.

Поскольку мы уже установили инструмент миграции Magento, используя инструкции из предыдущей статьи , следующий шаг — правильно настроить его для успешной миграции. Прежде чем приступить к настройке инструмента миграции, вам необходимо убедиться, что версия вашего инструмента миграции совпадает с версией установки Magento, а если нет, вам необходимо обновить версию инструмента миграции.

Если вы мигрируете в Magento версии 2.0.0, вам нужно иметь инструмент для миграции версии 2.0.0, также, если у вас есть Magento версии 2.0.2, вам нужен инструмент для миграции версии 2.0.2. В случае несоответствия версий миграция не будет успешной, поскольку разные версии Magento могут иметь разные структуры базы данных и требовать разных механизмов отображения.

Чтобы проверить версию вашей новой установки Magento, используйте следующую команду:

1
php <Magento root directory>/bin/magento —version

Теперь проверьте версию инструмента миграции Magento. Для этого перейдите в каталог инструментов миграции и откройте файл composer.json. Расположение этого файла будет примерно таким:

Magento root directory/vendor/magento/data-migration-tool/composer.json

В этом файле найдите значение version , и это версия вашего инструмента миграции. Если версия Magento и инструмента миграции совпадают, вы можете перейти к следующему шагу. Однако, если они этого не делают, вам нужно изменить версию инструмента миграции, чтобы она соответствовала версии Magento.

Прежде чем продолжить обновление версии, сделайте резервную копию каталога data -igration-tool, потому что процесс обновления изменит содержимое этой папки, и если что-то пойдет не так, вы не сможете вернуть исходный, если не У меня нет резервной копии. После завершения резервного копирования просто перейдите в корневой каталог Magento на своем сервере и введите следующую команду:

1
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-ce, но если вы имеете дело с выпуском Enterprise, то это будет ee вместо ce.

Создание правильно сконфигурированного файла config.xml является обязательным, прежде чем начать какую-либо миграцию. Чтобы создать файл config.xml, войдите на сервер Magento и перейдите в этот каталог:

<Magento2 root directory>/vendor/magento/data-migration-tool/etc/<migration edition>/ce

Используйте эту команду для создания файла конфигурации:

1
cp config.xml.dist config.xml

Теперь, когда он создан, откройте его в любом текстовом редакторе и вставьте в этот пример код:

01
02
03
04
05
06
07
08
09
10
<source>
    <database host=»127.0.0.1″ name=»magento1″ user=»root» password=»abc»/>
</source>
<destination>
    <database host=»127.0.0.1″ name=»magento2″ user=»root» password=»abc»/>
</destination>
<options>
    <source_prefix>magento1</source_prefix>
    <crypt_key>Look at Magento 1 root directory/app/etc/local.xml</crypt_key>
</options>

Здесь поля хоста , имени и пользователя как исходной, так и целевой базы данных являются обязательными. Также поле crypt_key является обязательным. Остальные поля, такие как пароль базы данных и source_prefix, являются необязательными.

Поле crypt_key должно иметь тот же ключ, который можно найти в теге ключа файла local.xml, находящегося в этом каталоге:

<Magento1 root directory>/app/etc/local.xml

Теперь, когда мы создали файл config.xml, следующим необязательным шагом является обновление файлов сопоставления. Инструмент миграции использует файлы сопоставления для выполнения сопоставления базы данных из Magento 1 в Magento 2. Файлы сопоставления содержат информацию об изменении имен таблиц и полей базы данных, какие таблицы и поля можно игнорировать, а также другую подобную информацию. Вы можете найти файлы сопоставления в этом каталоге:

<Magento2 root directory>/vendor/magento/data-migration-tool/etc

Просмотрите эти файлы, и, если вам нужно обновить какой-либо из них, сделайте копию файла, который нужно отредактировать, и удалите .dist из имени. Например, если вы используете файл map.xml.dist, сделайте копию этого файла с именем map.xml. Как только вы закончите редактирование, вам нужно обновить файл config.xml новым именем файла в дополнительном узле. Если вы добавили файл map.xml, код ранее созданного файла config.xml станет таким:

01
02
03
04
05
06
07
08
09
10
11
<source>
    <database host=»127.0.0.1″ name=»magento1″ user=»root» password=»abc»/>
</source>
<destination>
    <database host=»127.0.0.1″ name=»magento2″ user=»root» password=»abc»/>
</destination>
<options>
    <source_prefix>magento1</source_prefix>
    <crypt_key>Look at Magento 1 root directory/app/etc/local.xml</crypt_key>
    <map_file>etc/ce-to-ce/1.9.1.0/map.xml.dist</map_file>
</options>

Теперь, когда мы закончили со всем планированием миграции, установками, настройками и так далее, давайте приступим к процессу миграции. Для этого вам нужно запустить инструмент миграции. Чтобы запустить инструмент миграции, введите ваш сервер Magento как пользователь с правами на запись. Чтобы запустить команды Magento из любого каталога, добавьте корневой каталог / bin Magento в системный путь, или вы можете выполнить команды следующим образом:

1
cd <Magento root dir>/bin

Используйте следующую команду для запуска миграции:

1
bin/magento migrate:<mode>{<path to config.xml>}

Здесь режимом могут быть настройки, данные или дельта, а путь к файлу config.xml будет абсолютным.

Вам необходимо выполнить миграцию в следующем порядке:

  1. Перенос настроек
  2. Перенос данных
  3. Миграция дельта (изменения)

Миграция параметров приведет к миграции параметров оплаты, налогов и доставки, связанных с вашими магазинами, веб-сайтами и т. Д. Чтобы запустить миграцию параметров, выполните следующую команду:

1
bin/magento migrate:settings{<path to config.xml>}

Это может не перенести все данные. Вы должны войти в систему с панели администратора, чтобы вручную проверить, все ли передано правильно. Если есть какая-либо проблема, вы можете повторно выполнить этот оператор, но на этот раз используйте аргумент сброса, чтобы начать миграцию с самого начала. Команда будет выглядеть так:

Когда вы закончите с настройками, начните перенос данных. Процедура та же, что и раньше, с изменением одного аргумента. Команда для выполнения будет выглядеть так:

1
bin/magento migrate:data {<path to config.xml>}

Когда вы запускаете миграцию данных, инструмент миграции проверяет соответствие таблиц и полей базы данных ваших старых и более новых версий Magento. В случае несоответствия он пытается найти информацию из файлов сопоставления.

Если он не найдет его там, он выдаст ошибку с указанием тревожных таблиц и имен полей. Проблема обычно возникает, когда вы используете расширение Magento, структура таблицы которого не соответствует структуре базы данных Magento 2. В этом случае вы можете установить версию расширения Magento 2 или игнорировать эти файлы, добавив теги <ignore> в файл map.xml .

Как только вы решите проблему, вы можете повторно запустить команду переноса данных. Здесь следует иметь в виду, что инструмент миграции отслеживает прогресс во время миграции, и после повторного запуска он возобновляет работу с того места, где он был ранее. Чтобы заставить его запускаться с самого начала, вы можете использовать команду сброса следующим образом:

1
bin/magento migrate:data [-r|—reset] {<path to config.xml>}

Следующим шагом является перенос изменений (дельта).

Как обсуждалось в предыдущей статье этой серии, перед началом процесса миграции вы должны остановить задание Magento 1 cron, а также все действия в панели администрирования Magento 1, кроме необходимых проблем управления заказами, и не возобновлять действие до Время миграции завершено.

Хотя большинство действий в панели администрирования Magento 1 будет прекращено до начала процесса миграции, будут возникать некоторые проблемы с обработкой заказов. Также, возможно, за это время произойдут новые отзывы пользователей или изменения в профилях клиентов. Теперь вам нужно перенести эти данные с помощью дополнительных обновлений.

Чтобы перенести инкрементные обновления, выполните следующую команду:

1
bin/magento migrate:delta [-r|—reset] {<path to config.xml>}

Здесь необходимо помнить, что инкрементная миграция выполняется непрерывно, если вы не прервали ее с помощью команды CTRL + C. Здесь также следует отметить, что этот инструмент переносит только данные, сгенерированные собственными модулями Magento. Если стороннее расширение генерирует / обновляет некоторые данные за это время, они не будут перенесены. Если вы хотите, чтобы эти данные также были перенесены, вам нужно обновить конфигурационные файлы Magento 2. Это требует некоторых предварительных знаний о внутренней спецификации инструмента переноса данных, и это выходит за рамки данной статьи.

Опять же, возвращаясь к первой статье этой серии, хотя инструмент миграции будет выполнять большую часть тяжелого процесса миграции, существует три типа файлов, которые вам нужно перенести вручную:

  1. Медиа файлы
  2. Дизайн магазина
  3. ACL (списки контроля доступа)

Для передачи мультимедийных файлов сначала перейдите в панель администратора Magento 1. Перейдите в Система> Конфигурация> Дополнительно> Система.

На вкладке « Конфигурация хранилища для мультимедиа » выберите базу данных мультимедиа из списка и нажмите « Синхронизировать» .

Selecting Media Database to Synchronize

Теперь перейдите в админ панель 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, которые вы используете на своем сайте, а также вам нужно будет заново создать административных пользователей и установить их права доступа.

Теперь, когда вы выполнили все шаги, необходимые для миграции, вот несколько последних вещей, которые нужно сделать, чтобы иметь полнофункциональный веб-сайт Magento 2.

  • Вам нужно перевести Magento 1 в режим обслуживания и запустить задание Magento 2 cron.
  • Очистите кэши Magento 2 и переиндексируйте все индексы.
  • Измените DNS, чтобы указать на Magento 2, чтобы перенаправить трафик на новый сайт.

Если вы сделали это до сих пор, поздравляю! Ваш новый магазин Magento 2 готов. Время и усилия, которые вы потратили на перевод сайта на новую версию Magento, действительно того стоят. Эта новая версия Magento предлагает повышенную производительность и масштабируемость, новые функции для повышения коэффициентов конверсии, а также улучшения в гибкости и производительности бизнеса. Ваш сайт готов перейти на следующий уровень с этими расширенными функциями.