Al escribir procesos de migración de Drupal 8, solo puedo actualizar los nuevos procesos de migración si reinstalo el módulo de migración personalizado. drush cr no funciona.
Explicación:
Tengo un módulo, es decir cm_migrations
, que tiene 2 migraciones:
cm_users
cm_tags
Con drush ms
veo:
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
Escribo un nuevo proceso de migración:
cm_beers
Ejecuto drush cr; drush ms
y veo la misma tabla que la anterior.
Solo cuando desinstalo e instalo cm_migrations
puedo ver los tres procesos de migración:
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
¿Alguna pista sobre cómo puedo actualizar los procesos de migración sin reinstalar el módulo?
Gracias
migrate.migration.cm_beers.yml
y vuelvo a ejecutar el proceso, la migración no falla. Parece estar almacenado en caché el contenido del archivo yaml en alguna parte.Respuestas:
Encontré que esto funcionó para mí
fuente
Hay un módulo para eso. Como normalmente los archivos yml solo se cargan al instalarlos.
Este módulo le permite definir qué archivos de configuración del módulo se importan automáticamente.
https://www.drupal.org/project/config_devel
También vea esta entrada del blog: https://blog.liip.ch/archive/2016/05/04/using-the-new-drupal-8-migration-api-module.html
Has aprendido que toda la asignación de migración ahora se realiza en archivos yaml. Pero, ¿qué hay de escribir sus propios archivos de migración yaml?
Desafortunadamente, existen algunas dificultades para los nuevos desarrolladores de Drupal 8. Debido a la interfaz de administración de configuración ( https://www.drupal.org/documentation/administer/config ) de Drupal 8, todos los archivos yml en el directorio "config / install" solo se importan al instalar el módulo.
Esto es muy poco práctico si desea desarrollar nuevos archivos de configuración. Para solucionar esto, se puede instalar un módulo "Desarrollo de la configuración" ( https://www.drupal.org/project/config_devel ) que resuelve los problemas de almacenamiento en caché. Es posible importar ciertos archivos yml en cada solicitud. Pero desafortunadamente, los comandos drush aún no son compatibles. Por lo tanto, debemos agregar todos los archivos yaml que queremos importar a una nueva sección en nuestro module.info.yml.
Luego podemos ejecutar los siguientes comandos después de actualizar el archivo yml. Esto importará el nuevo archivo de configuración en la interfaz de administración de configuración.
fuente
Las migraciones deben estar en el
MODULENAME/migrations
subdirectorio. Después de modificar una configuración de migración,drush cr
basta con aplicar los cambios.Un derivador de configuración convertirá una configuración de migración nuevamente en un complemento de migración.
Consulte este registro de cambios: las migraciones son complementos en lugar de entidades de configuración
fuente
Estaba luchando con el mismo problema: cómo actualizar la configuración de migración durante el desarrollo. Esto es lo que terminé con:
config-devel-import-one
, el comando (cdi1
para abreviar) está destinado a importar una configuración única en la configuración activa. Es la parte del módulo config_devel mencionado anteriormente.fuente
No tuve éxito con la solución de FLY. Tuve que desinstalar migrate_tools también, para actualizar yaml. Y sin suerte con
devel_config
.Encontré estas configuraciones actualizadas:
fuente
Siguiendo la solución de Peter J Lord, también puede agregar un directorio de configuración (para ymls nuevos o actualizados) a su archivo settings.php. p.ej:
Coloque nuevos archivos yml en ese directorio y luego importe las nuevas configuraciones con el comando config-import de drush:
fuente
He encontrado que a veces ninguno de los anteriores funciona. Incluso combinándolos a todos. Sin embargo, podría engañar a migrate_tools para que me dé una idea.
Aparentemente, se verifica si el archivo yml es válido antes de que aparezca en la lista. Intente ejecutar el importador (sí, incluso si no aparece con
$ drush ms
)Mi migración se llamaba productos, así que hice:
$ drush mim products
Migration failed with source plugin exception: The "int" plugin does not exist.
Arreglando esta falla (cambiando int por entero en mi caso) y luego siguiendo la respuesta de @FLY arriba, apareció la migración. Es una pena que el error no apareció y simplemente falló en silencio, pero ese es otro tema. ;-)
PD: Hubiera publicado esto como un comentario, pero todavía no tengo suficientes puntos.
fuente
En la respuesta de FLY arriba,
drush cdi <module_name>
ahora debería serdrush cde <module_name>
.fuente