Импорт одного файла конфигурации yml

22

Можно ли импортировать один файл конфигурации yml, указав его путь?

Или группа yml-файлов, содержащихся в определенном модуле?

Дэвид Риччелли
источник
Вы можете включить модуль конфигурации, а затем использовать одну страницу импорта.
Спасибо @IvanJaros, можете ли вы расширить комментарий до ответа с подробностями, как включить модуль конфигурации и путь к отдельной странице импорта? Есть ли способ достичь тех же результатов с помощью drush или drupal console? Если это сработает, я приму ответ. Ура!
Дэвид Риччелли
Я полагаю, вы можете поместить файл в каталог config / sync и просто запустить drush cim, я всегда использовал пользовательский интерфейс для одного файла конфигурации.
Это будет импортировать все файлы в каталоге синхронизации .
Дэвид Риччелли

Ответы:

15

Ты можешь использовать

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

Ваша помощь говорит:

$ 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
источник
3
Это здорово, но если вы хотите импортировать один файл, вам нужно переместить его в другой частичный каталог? Это странно, не правда ли?
Рейсс
14

Вы можете импортировать одну конфигурацию, выполнив следующую команду:

 drupal config:import:single

Если вы пытаетесь запустить множественный импорт, вы можете создать цепочку для этого.

Документация команды - config: import: single

itsdarrylnorris
источник
3
Есть ли вариант для Drush Aswell?
Бенедикт
5
Совет для пользователей Lando / Docker - вам нужно указать полный путь при запуске в контейнере, например drupal config:import:single --directory="/app/config/sync" --file="foo.settings.yml", а не просто config / sync, когда вы находитесь в / app - в противном случае вы получите [ERROR] Значение не может быть пустым . (К счастью, исходный код Drupal Console хорош и прост в отладке.)
Уильям Туррелл
4

Если у вас не установлена ​​консоль Drush или Drupal, пожалуйста, используйте следующие шаги (успешно выполнено в D 8.0.1):

  1. Перейдите в Администрирование-> Конфигурация-> Синхронизация конфигурации. Конфигурация может быть экспортирована для одного элемента или для всего сайта. Я сделал для одного файла user.mail.yml. Экспортируйте необходимую конфигурацию.
    1. Измените изменения в экспортированной конфигурации.
    2. Импортируйте измененную конфигурацию
    3. После успешного импорта убедитесь, что вы удалили существующие данные из таблиц config и cache_config (извлеките дамп базы данных и найдите ключевые слова конфигурации. Таким образом вы узнаете таблицы, в которых присутствует запись.)

Примечание. Всегда делайте резервную копию.

Соумья Раджив
источник