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


22

Чи можливо імпортувати один єдиний файл конфігурації yml, вказавши його шлях?

Або група файлів yml, що містяться в конкретному модулі?


Можна, включивши модуль конфігурації, а потім скориставшись однією сторінкою імпорту.

Дякуємо @IvanJaros, чи можете ви розгорнути коментар до відповіді з деталями, як увімкнути модуль конфігурації та шлях до однієї сторінки імпорту? Чи є спосіб досягти однакових результатів за допомогою барабанної та друпальної консолі? Якщо це спрацює, я прийму відповідь. Ура!
Девід Річчіллі

Я думаю, ви можете помістити файл у каталог config / sync та просто запустити drim cim, ive завжди використовував ui для одного конфігураційного файла.

Це імпортує всі файли в каталог синхронізації .
Девід Річчіллі

Відповіді:


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

3
Це чудово, але якщо ви хочете імпортувати один файл, вам доведеться перемістити його в інший частковий каталог? Це дивно, чи не так?
rreiss

14

Ви можете імпортувати одну конфігурацію, виконавши таку команду:

 drupal config:import:single

Якщо ви намагаєтеся запустити кілька імпортів, ви можете створити ланцюжок для цього.

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


3
Чи є варіант і для барабану?
Бенедикт

5
Порада для користувачів Lando / Docker - вам потрібно вказати повний шлях під час запуску в контейнері, наприклад drupal config:import:single --directory="/app/config/sync" --file="foo.settings.yml", а не просто конфігурувати / синхронізувати, коли ви знаходитесь у програмі / додатку - інакше ви отримаєте [ERROR] Значення не може бути порожнім . (На щастя, вихідний код Drupal Console приємний і простий для налагодження.)
Вільям Туррелл

4

Якщо у вас не встановлена ​​консоль Drush або Drupal, будь ласка, скористайтеся наступними кроками (успішно виконаними у D 8.0.1):

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

Примітка. Завжди беруть резервну копію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.