Importar un solo archivo de configuración yml

22

¿Es posible importar un solo archivo de configuración yml especificando su ruta?

¿O un grupo de archivos yml contenidos en un módulo específico?

David Riccitelli
fuente
Puede habilitar el módulo de configuración y luego usar la página de importación única.
Gracias @IvanJaros, ¿puede ampliar el comentario a una respuesta con detalles sobre cómo habilitar el módulo de configuración y la ruta a la página de importación única? ¿Hay alguna manera de lograr los mismos resultados con la consola drush o drupal? Si funciona, aceptaré la respuesta. ¡Salud!
David Riccitelli
Supongo que puede poner el archivo en el directorio config / sync y simplemente ejecutar drush cim, siempre he usado ui para un solo archivo de configuración.
Eso importaría todos los archivos en el directorio de sincronización .
David Riccitelli

Respuestas:

15

Puedes usar

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

Tu ayuda dice:

$ 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
fuente
3
Eso es genial, pero si desea importar un archivo, ¿tiene que moverlo a otro directorio parcial? Eso es raro, ¿no?
rreiss
14

Puede importar una configuración ejecutando el siguiente comando:

 drupal config:import:single

Si está intentando ejecutar una importación múltiple, puede crear una cadena para eso.

Documentación de comandos - config: import: single

itsdarrylnorris
fuente
3
¿Hay alguna opción para drush también?
Benedikt
55
Sugerencia para los usuarios de Lando / Docker: debe especificar la ruta completa cuando se ejecuta en un contenedor, por ejemplo drupal config:import:single --directory="/app/config/sync" --file="foo.settings.yml", en lugar de simplemente configurar / sincronizar cuando está en / app ; de lo contrario, obtendrá [ERROR] El valor no puede estar vacío . (Afortunadamente, el código fuente de la Consola Drupal es agradable y fácil de depurar.)
William Turrell el
4

En caso de que no tenga instalada la consola Drush o Drupal, siga los siguientes pasos (ejecutados con éxito en D 8.0.1):

  1. Vaya a Administración-> Configuración-> Sincronización de configuración. La configuración se puede exportar para un solo elemento o para todo el sitio. Lo hice para un solo archivo user.mail.yml. Exporte la configuración requerida.
    1. Modifique los cambios a la configuración exportada.
    2. Importar la configuración modificada
    3. Una vez que la importación sea exitosa, asegúrese de borrar los datos existentes de las tablas config y cache_config (Extraiga un volcado de la base de datos y busque las palabras clave de configuración. De esa manera sabrá las tablas donde está presente la entrada).

Nota: siempre realice una copia de seguridad.

Soumya Rajiv
fuente