Ao escrever os processos de migração do Drupal 8, só posso atualizar novos processos de migração se eu reinstalar o módulo de migração personalizado. drush cr não funciona.
Explicação:
Eu tenho um módulo, ou seja:, cm_migrations
que tem 2 migrações:
cm_users
cm_tags
Com drush ms
eu vejo:
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
Eu escrevo um novo processo de migração:
cm_beers
Eu executo drush cr; drush ms
e vejo a mesma tabela que a anterior.
Somente quando desinstalo e instalo é cm_migrations
que vejo os três processos de migração:
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
Alguma pista sobre como atualizar os processos de migração sem reinstalar o módulo?
obrigado
migrate.migration.cm_beers.yml
e executar novamente o processo, a migração não falhará. Parece estar em cache o conteúdo do arquivo yaml em algum lugar.Respostas:
Eu achei que isso funcionou para mim
fonte
Existe um módulo para isso. Como normalmente os arquivos yml são carregados apenas na instalação.
Este módulo permite definir quais arquivos de configuração do módulo são importados automaticamente.
https://www.drupal.org/project/config_devel
Consulte também esta postagem do blog: https://blog.liip.ch/archive/2016/05/04/using-the-new-drupal-8-migration-api-module.html
Você aprendeu que todo o mapeamento de migração agora é feito em arquivos yaml. Mas e quanto a escrever seus próprios arquivos yaml de migração?
Infelizmente, existem algumas armadilhas para os novos desenvolvedores do Drupal 8. Por causa da Interface de Gerenciamento de Configuração ( https://www.drupal.org/documentation/administer/config ) do Drupal 8, todos os arquivos yml no diretório “config / install” são importados apenas ao instalar o módulo.
Isso é muito impraticável se você deseja desenvolver novos arquivos de configuração. Para resolver isso, pode ser instalado um módulo "Desenvolvimento de configuração" ( https://www.drupal.org/project/config_devel ) que resolve os problemas de armazenamento em cache. É possível importar certos arquivos yml em cada solicitação. Infelizmente, os comandos drush ainda não são suportados. Portanto, precisamos adicionar todos os arquivos yaml que queremos importar para uma nova seção em nosso module.info.yml.
Em seguida, podemos executar os seguintes comandos após atualizar o arquivo yml. Isso importará o novo arquivo de configuração para a Interface de Gerenciamento de Configuração.
fonte
As migrações devem estar no
MODULENAME/migrations
subdiretório. Depois de modificar uma configuração de migração,drush cr
basta aplicar as alterações.Um derivador de configuração transformará uma configuração de migração novamente em um plug-in de migração.
Veja este registro de alteração: Migrações são plug-ins em vez de entidades de configuração
fonte
Eu estava lutando com o mesmo problema: como atualizar a configuração da migração durante o desenvolvimento. Aqui está o que eu acabei com:
config-devel-import-one
, o comando (cdi1
abreviado) pretende importar a configuração única para a configuração ativa. É a parte do módulo config_devel mencionado acima.fonte
Não tive sucesso com a solução da FLY. Também tive que desinstalar o migrate_tools para atualizar o yaml. E sem sorte com
devel_config
.Eu encontrei essas configurações atualizadas:
fonte
Seguindo a solução de Peter J Lord, você também pode adicionar um diretório de configuração (para ymls novos ou atualizados) ao seu arquivo settings.php. por exemplo:
Coloque novos arquivos yml nesse diretório e importe as novas configurações com o comando config-import do drush:
fonte
Eu descobri que algumas vezes nenhum dos trabalhos acima. Mesmo combinando todos eles. No entanto, eu poderia enganar migrate_tools para me dar algumas dicas.
Aparentemente, há uma verificação se o arquivo yml é válido antes de ser listado. Tente executar o importador (sim, mesmo que ele não apareça
$ drush ms
)Minha migração foi chamada de produtos, então fiz:
$ drush mim products
Migration failed with source plugin exception: The "int" plugin does not exist.
Corrigir esta falha (alterar int para inteiro no meu caso) e depois seguir a resposta do @FLY acima fez a migração aparecer. Pena que o erro não apareceu e apenas falhou silenciosamente, mas esse é outro tópico. ;-)
PS: Eu teria postado isso como um comentário, mas ainda não tenho pontos suficientes.
fonte
Na resposta de FLY acima,
drush cdi <module_name>
agora deve serdrush cde <module_name>
.fonte