Подскажите, как мигрировать D7->D9 через drush.

21 декабря 2021 в 13:54
Аватар пользователя VasyOK VasyOK 0 11 Решено

Всем привет. Пытаюсь произвести миграцию D7->D9 через drush.
Ориентируюсь на: https://www.drupal.org/docs/upgrading-drupal/upgrade-using-drush

В settings.php нового сайта:

$databases['default']['default'] = [
...
];
$databases['migrate']['default'] = [
...
];

Выполняю: drush migrate-upgrade
Выдает: Command "migrate-upgrade" is not defined.

drush - 10й.

Комментарии

Почему тогда написано:
Drush 10.4.0 (and later) contains the needed migrate commands, no modules required.

Версию Драш проверил:
$ drush --version
Drush Launcher Version: 0.9.0
Drush Commandline Tool 10.6.2

21 декабря 2021 в 19:10

Вам шашечки или ехать? Мне кажется, если создать ишью по этому поводу, то в результате просто уберут этот абзац из доки Biggrin

22 декабря 2021 в 11:33

Спасибо. Действительно модули нужно включить.

Гуры, подскажите:
1. Вот есть команда:
drush migrate-upgrade --legacy-db-url=mysql://user:password@server/db --legacy-root=http://example.com --configure-only

Она генерирует что-то из чего впоследстии производится миграция? Если да, то куда это генерируется?

2. Команда
drush migrate-import --tag="Drupal 7" --all
выдает разные ошибки, но если ее запустить несколько раз миграция запускается и на новом сайте я вижу практически весь контент, и пользователей со старого сайта. Почему это команда так долго выполняется? У меня на локалке 9 часов, на реальном сервере часа 4. Что ей надо? Процессор на сервере?

23 декабря 2021 в 7:51

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

23 декабря 2021 в 8:57

"Оно создаёт сущности миграций." А куда оно их создает? До экспорта конфигураций, где они?

Миграцию, конфигруации, пользователей и контента можно произвести через Drush по отдельности? Я слышал, что можно, но документацию найти не могу.

Нод мало. Юзеров 66000, комментариев 120000. При импорте отключил оценки, которые идут от модулей лайканья - т.к. этик оценок там тоже дофига и с ними перенос будет еще несколько часов. Проц долбится в 50%. Что можно на сервере увеличить, чтоб быстрее шло?

23 декабря 2021 в 9:23

VasyOK wrote: До экспорта конфигураций, где они?

Там же, где и любая другая конфигурация - в базе данных.

Можно включить Migrate UI и там смотреть миграции. Можно почитать здесь, как запускать их по одной: https://www.drupal.org/docs/drupal-apis/migrate-api/executing-migrations

Ну и опять же, когда запускаешь все миграции разом, в командную строку выводится информация о том, какая миграция выполняется в данный момент. И так можно узнать, какая именно выполняется сейчас и засечь время

23 декабря 2021 в 11:38

Нес восем пока понятно. Ок, другой вопрос.

Команда
drush migrate-import --tag="Drupal 7" --all
она конечно мигрирует контент со старого сайта. Но не мигрирует таксономию.

Если я в админке через migrate_drupal_ui, то наоборот: контент мигрирует, таксономию - нет. Есть какая-то Драш команда именно для импорта через встроенные инструменты Друпула?

24 декабря 2021 в 9:21

Через drush можно мигрировать миграции из определённой группы, с определённым тэгом или с определённым айдишником. Через админку по одной

25 декабря 2021 в 0:12

Ок, я вбиваю drush migrate-upgrade... И в admin/structure/migrate появляется некая группа. Но внутри нее надпись:
Пока ещё нет "Сущности миграция".

Это так и надо? Или каждая миграция это типа кастомный модуль?

25 декабря 2021 в 9:46

Загляни в логи, может быть там есть что-то интересное. Миграции иногда глючат и не показываются из-за этого.

25 декабря 2021 в 10:33