Lors de l'écriture de processus de migration Drupal 8, je ne peux actualiser de nouveaux processus de migration que si je réinstalle le module de migration personnalisé. drush cr ne fonctionne pas.
Explication:
J'ai un module, ie:, cm_migrations
qui a 2 migrations:
cm_users
cm_tags
Avec drush ms
je vois:
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
J'écris un nouveau processus de migration:
cm_beers
J'exécute drush cr; drush ms
et je vois le même tableau que le précédent.
Ce n'est que lorsque je désinstalle et installe que cm_migrations
je peux voir les trois processus de migration:
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
Avez-vous la moindre idée de comment actualiser les processus de migration sans réinstaller le module?
Merci
migrate.migration.cm_beers.yml
et réexécute le processus, la migration n'échoue pas. Il semble que le contenu du fichier yaml soit mis en cache quelque part.Réponses:
J'ai trouvé que ça fonctionnait pour moi
la source
Il y a un module pour ça. Puisque normalement les fichiers yml ne sont chargés qu'à l'installation.
Ce module vous permet de définir quels fichiers de configuration de module sont importés automatiquement.
https://www.drupal.org/project/config_devel
Voir également cet article de blog: https://blog.liip.ch/archive/2016/05/04/using-the-new-drupal-8-migration-api-module.html
Vous avez appris que l'intégralité du mappage de migration est désormais effectuée dans des fichiers yaml. Mais que diriez-vous d'écrire vos propres fichiers yaml de migration?
Malheureusement, il existe des écueils pour les nouveaux développeurs Drupal 8. En raison de l'interface de gestion de la configuration ( https://www.drupal.org/documentation/administer/config ) de Drupal 8, tous les fichiers yml du répertoire «config / install» ne sont importés que lors de l'installation du module.
Ceci est très peu pratique si vous souhaitez développer de nouveaux fichiers de configuration. Pour y remédier, un module «Développement de configuration» ( https://www.drupal.org/project/config_devel ) qui résout les problèmes de mise en cache peut être installé. Il est possible d'importer certains fichiers yml à chaque demande. Mais malheureusement, les commandes drush ne sont pas encore prises en charge. Nous devons donc ajouter tous les fichiers yaml que nous voulons importer dans une nouvelle section de notre module.info.yml.
Ensuite, nous pouvons exécuter les commandes suivantes après la mise à jour du fichier yml. Cela importera le nouveau fichier de configuration dans l'interface de gestion de la configuration.
la source
Les migrations doivent être dans le
MODULENAME/migrations
sous - répertoire. Après avoir modifié une configuration de migration, un simpledrush cr
suffit pour appliquer les changements.Un dérivé de configuration reconvertira une configuration de migration en un plugin de migration.
Voir cet enregistrement de changement: les migrations sont des plugins au lieu d'entités de configuration
la source
Je me débattais avec le même problème: comment mettre à jour la configuration de migration pendant le développement. Voici ce que j'ai fini avec:
config-devel-import-one
, la commande (cdi1
pour faire court) est destinée à importer une seule configuration dans la configuration active. C'est la partie du module config_devel mentionnée ci-dessus.la source
Je n'ai pas réussi avec la solution de FLY. J'ai également dû désinstaller migrate_tools pour que yaml soit actualisé. Et pas de chance avec
devel_config
.J'ai trouvé ces configurations rafraîchies:
la source
Suite à la solution de Peter J Lord, vous pouvez également ajouter un répertoire de configuration (pour les ymls nouveaux ou mis à jour) à votre fichier settings.php. par exemple:
Placez de nouveaux fichiers yml dans ce répertoire, puis importez les nouveaux paramètres de configuration avec la commande config-import de drush:
la source
J'ai trouvé que parfois aucun des travaux ci-dessus. Même en les combinant tous. Cependant, je pourrais tromper migrate_tools pour me donner un aperçu.
Apparemment, il y a une vérification si le fichier yml est valide avant d'être répertorié. Essayez d'exécuter l'importateur (oui, même s'il n'apparaît pas avec
$ drush ms
)Ma migration s'appelait des produits, alors j'ai fait:
$ drush mim products
Migration failed with source plugin exception: The "int" plugin does not exist.
Corriger ce défaut (changer int en entier dans mon cas) puis suivre la réponse de @FLY ci-dessus a fait apparaître la migration. Dommage que l'erreur ne soit pas apparue et qu'elle ait échoué silencieusement, mais c'est un autre sujet. ;-)
PS J'aurais posté ceci en tant que commentaire, mais je n'ai pas encore assez de points.
la source
Dans la réponse de FLY ci-dessus,
drush cdi <module_name>
devrait maintenant l'êtredrush cde <module_name>
.la source