При написании процессов миграции в Drupal 8 я могу обновлять новые процессы миграции только после переустановки пользовательского модуля миграции. Drush CR не работает.
Объяснение:
У меня есть один модуль, а именно:, cm_migrations
которые имеют 2 миграции:
cm_users
cm_tags
С drush ms
я вижу:
Group: beer Status Total Imported Unprocessed Last imported
cm_users Idle 3 3 0 2016-02-09 16:56:25
cm_tags Idle 4 0 4
Я пишу новый процесс миграции:
cm_beers
Я выполняю drush cr; drush ms
и вижу ту же таблицу, что и предыдущая.
Только после удаления и установки cm_migrations
я вижу три процесса миграции:
Group: beer Status Total Imported Unprocessed Last imported
cm_users Idle 3 3 0 2016-02-09 16:56:25
cm_tags Idle 4 0 4
cm_beers Idle 4 0 4
Любая подсказка о том, как я могу обновить процессы миграции без переустановки модуля?
Спасибо
migrate.migration.cm_beers.yml
и снова выполню процесс, миграция не завершится неудачей. Кажется, где-то кешируется содержимое файла yaml.Ответы:
Я нашел, что это работает для меня
источник
Для этого есть модуль. Так как обычно файлы yml загружаются только после установки.
Этот модуль позволяет вам определить, какие файлы конфигурации модуля импортируются автоматически.
https://www.drupal.org/project/config_devel
Также смотрите этот пост в блоге: https://blog.liip.ch/archive/2016/05/04/using-the-new-drupal-8-migration-api-module.html
Вы узнали, что все отображение миграции теперь выполняется в файлах yaml. Но как насчет написания собственных миграционных файлов yaml?
К сожалению, есть некоторые подводные камни для новых разработчиков Drupal 8. Благодаря интерфейсу управления конфигурацией ( https://www.drupal.org/documentation/administer/config ) в Drupal 8 все файлы yml в каталоге «config / install» импортируются только при установке модуля.
Это очень непрактично, если вы хотите разрабатывать новые файлы конфигурации. Для решения этой проблемы можно установить модуль «Разработка конфигурации» ( https://www.drupal.org/project/config_devel ), который решает проблемы с кэшированием. Можно импортировать определенные файлы yml по каждому запросу. Но, к сожалению, команды drush пока не поддерживаются. Поэтому нам нужно добавить все файлы yaml, которые мы хотим импортировать, в новый раздел в нашем module.info.yml.
Затем мы можем запустить следующие команды после обновления файла yml. Это импортирует новый файл конфигурации в интерфейс управления конфигурацией.
источник
Миграции должны быть в
MODULENAME/migrations
подкаталоге. После изменения конфигурации миграцииdrush cr
достаточно просто применить изменения.Производный конфигурации превратит конфигурацию миграции обратно в плагин миграции.
Посмотрите эту запись об изменениях: Миграции - это плагины, а не объекты конфигурации.
источник
Я боролся с той же проблемой: как обновить конфигурацию миграции во время разработки. Вот что я закончил:
config-devel-import-one
Команда (cdi1
для краткости) предназначена для импорта одной конфигурации в активную конфигурацию. Это часть модуля config_devel, упомянутого выше.источник
У меня не было успеха с решением FLY. Пришлось также удалить migrate_tools, чтобы обновить yaml. И не повезло с
devel_config
.Я нашел это обновленные конфигурации:
источник
Следуя решению Peter J Lord, вы также можете добавить каталог config (для новых или обновленных ymls) в ваш файл settings.php. например:
Поместите новые файлы yml в этот каталог, а затем импортируйте новые параметры конфигурации с помощью команды drush config-import:
источник
Я обнаружил, что иногда ничего из вышеперечисленного не работает. Даже объединяя их всех. Однако я мог обмануть migrate_tools, чтобы дать мне некоторое представление.
Очевидно, существует проверка, является ли файл yml действительным, прежде чем он будет внесен в список. Попробуйте запустить импортер (да, даже если он не отображается с
$ drush ms
)Моя миграция называлась продуктами, поэтому я сделал:
$ drush mim products
Migration failed with source plugin exception: The "int" plugin does not exist.
Исправление этой ошибки (в моем случае изменение int на integer), а затем следование ответу @FLY, приведенному выше, привело к появлению миграции. Позор, ошибка не обнаружилась, и она просто молча провалилась, но это уже другая тема. ;-)
PS Я бы опубликовал это как комментарий, но у меня пока недостаточно очков.
источник
В ответе FLY выше,
drush cdi <module_name>
теперь должно бытьdrush cde <module_name>
.источник