Importer un seul fichier de configuration yml

22

Est-il possible d'importer un seul fichier de configuration yml en spécifiant son chemin?

Ou un groupe de fichiers yml contenus dans un module spécifique?

David Riccitelli
la source
Vous pouvez le faire en activant le module de configuration puis en utilisant la page d'importation unique.
Merci @IvanJaros, pouvez-vous étendre le commentaire à une réponse avec des détails sur la façon d'activer le module de configuration et le chemin vers la page d'importation unique? Existe-t-il un moyen d'obtenir les mêmes résultats avec la console Drush ou Drupal? Si cela fonctionne, j'accepterai la réponse. À votre santé!
David Riccitelli
je suppose que vous pouvez mettre le fichier dans le répertoire config / sync et simplement lancer drush cim, ive toujours utilisé ui pour un seul fichier de configuration.
Cela importerait tous les fichiers du répertoire de synchronisation .
David Riccitelli

Réponses:

15

Vous pouvez utiliser

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

Votre aide dit:

$ 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
la source
3
C'est très bien, mais si vous voulez importer un fichier, vous devez le déplacer vers un autre répertoire partiel? C'est bizarre, non?
rreiss
14

Vous pouvez importer une configuration en exécutant la commande suivante:

 drupal config:import:single

Si vous essayez d'exécuter plusieurs importations, vous pouvez créer une chaîne pour cela.

Documentation des commandes - config: import: single

itsdarrylnorris
la source
3
Existe-t-il une option pour drush également?
Benedikt
5
Astuce pour les utilisateurs de Lando / Docker - vous devez spécifier le chemin complet lors de l'exécution dans un conteneur, par exemple drupal config:import:single --directory="/app/config/sync" --file="foo.settings.yml", plutôt que simplement configurer / synchroniser lorsque vous êtes dans / app - sinon vous obtiendrez [ERREUR] La valeur ne peut pas être vide . (Heureusement, le code source de Drupal Console est agréable et facile à déboguer.)
William Turrell
4

Si vous n'avez pas installé la console Drush ou Drupal, veuillez suivre les étapes suivantes (exécutées avec succès dans D 8.0.1):

  1. Accédez à Administration-> Configuration-> Synchronisation de la configuration. La configuration peut être exportée pour un seul élément ou pour l'ensemble du site. Je l'ai fait pour un seul fichier user.mail.yml. Exportez la configuration requise.
    1. Modifiez les modifications apportées à la configuration exportée.
    2. Importez la configuration modifiée
    3. Une fois l'importation réussie, assurez-vous d'effacer les données existantes des tables config et cache_config (extraire un vidage de la base de données et rechercher les mots-clés de configuration. De cette façon, vous connaîtrez les tables où l'entrée est présente.)

Remarque - Faites toujours une sauvegarde.

Soumya Rajiv
la source