Importar um único arquivo de configuração yml

22

É possível importar um único arquivo de configuração yml especificando seu caminho?

Ou um grupo de arquivos yml contidos em um módulo específico?

David Riccitelli
fonte
Você pode ativar o módulo de configuração e, em seguida, usar a página de importação única.
Obrigado @IvanJaros, você pode expandir o comentário para obter uma resposta com detalhes de como ativar o módulo de configuração e o caminho para a única página de importação? Existe alguma maneira de obter os mesmos resultados com drush ou drupal console? Se funcionar, eu aceito a resposta. Felicidades!
David Riccitelli 28/11
Eu acho que você pode colocar o arquivo no diretório config / sync e apenas executar drush cim, sempre usei a interface do usuário para um único arquivo de configuração.
Isso importaria todos os arquivos no diretório de sincronização .
David Riccitelli 28/11

Respostas:

15

Você pode usar

$ drush cim --partial --source=only-few-configs/

Sua ajuda diz:

$ drush cim --help
Import config from a config directory.

Examples:
 drush config-import --partial             Import configuration; do not remove missing configuration.

Arguments:
 label                                     A config directory label (i.e. a key in $config_directories array in 
                                           settings.php). Defaults to 'sync'

Options:
 --partial                                 Allows for partial config imports from the source directory. Only updates and new 
                                           configs will be processed with this flag (missing configs will not be deleted).   
 --preview=<list>                          Format for displaying proposed changes. Recognized values: list, diff. Defaults   
                                           to list.                                                                          
 --source                                  An arbitrary directory that holds the configuration files. An alternative to      
                                           label argument

Aliases: cim
rpayanm
fonte
3
Isso é ótimo, mas se você deseja importar um arquivo, é necessário movê-lo para outro diretório parcial? Estranho, não é?
Rreiss
14

Você pode importar uma configuração executando o seguinte comando:

 drupal config:import:single

Se você estiver tentando executar várias importações, poderá criar uma cadeia para isso.

Documentação de comando - config: import: single

itsdarrylnorris
fonte
3
Existe uma opção para drush também?
Benedikt
5
Dica para usuários do Lando / Docker - você precisa especificar o caminho completo ao executar em um contêiner, por exemplo drupal config:import:single --directory="/app/config/sync" --file="foo.settings.yml", em vez de apenas configurar / sincronizar quando estiver no / app - caso contrário, você receberá [ERRO] O valor não pode estar vazio . (Código-fonte do Drupal Felizmente Console é agradável e fácil de depurar.)
William Turrell
4

Caso você não tenha o console Drush ou Drupal instalado, siga as seguintes etapas (executadas com sucesso no D 8.0.1):

  1. Vá para Administração-> Configuração-> Sincronização de Configuração. A configuração pode ser exportada para um único item ou para o site inteiro. Eu fiz para um único arquivo user.mail.yml. Exporte a configuração necessária.
    1. Modifique as alterações na configuração exportada.
    2. Importar a configuração modificada
    3. Quando a importação for bem-sucedida, limpe os dados existentes das tabelas config e cache_config (extraia um dump do banco de dados e procure as palavras-chave de configuração. Dessa forma, você conhecerá as tabelas em que a entrada está presente).

Nota - Sempre faça um backup.

Soumya Rajiv
fonte