После импорта архива с полной конфигурацией сайта происходит ряд ошибок. Как их вылавливать? Можно ли импортировать не все конфиги, а только половину? Чтобы выяснить какой именно конфиг виноват.
Проблема в том, что после импорта на сайте ряд ошибок, но не с импортом.
Вот я и хочу выявить какая из настроек сайта эти ошибки вызывает. Я думаю так: импортировать 500 из 1000 конфигов. Потом еще 250. И так по названию конфига выловлю какие настройки или какие модули виноваты.
Вот только как импортировать только часть конфигов?
Мой совет. Заливаешь БД с прода на локалку, делаешь импорт конфигов. Ищешь проблему после импорта и исправляешь ее. После этого делаешь импорт на проде
Я вот думаю когда происходит drush cim оно ж по одному все конфиги закачивает. Можно ли чтоб оно к следующему файлу переходило после того, как я что-то нажал?
Ряд можно увидеть в соседних темах созданных мной. Например есть проблема: нельзя указать у термина родитель. подозреваю это влияет на другие мои темы.
[error] TypeError: Argument 2 passed to Drupal\Core\Config\DatabaseStorage::write() must be of the type array, bool given, called in [папка сайта]/web/core/lib/Drupal/Core/Config/StorageCopyTrait.php on line 33 in Drupal\Core\Config\DatabaseStorage->write()(line 120 of [папка сайта]/web/core/lib/Drupal/Core/Config/DatabaseStorage.php)#0 [папка сайта]/web/core/lib/Drupal/Core/Config/StorageCopyTrait.php(33): Drupal\Core\Config\DatabaseStorage->write('views.view.taxo...', false) #1 [папка сайта]/web/core/lib/Drupal/Core/Config/ExportStorageManager.php(87): Drupal\Core\Config\ExportStorageManager::replaceStorageContents(Object(Drupal\Core\Config\CachedStorage), Object(Drupal\Core\Config\DatabaseStorage))
Я как бы не знаю какая вьюха проблемная.
Ну и у меня задача, не импортировать, а экспортировать. Пока что после очистки /config/sync мне это не удается.
"В тексте ошибки вьюха указана" - теперь понял. После удаления вьюхи ошибка по drush cex также пишется.
Кароче я понял что моими методами БД получается кривой.
А можно как-то перенести конфигурации с одного сайта на другой не зная названий самих конфигураций? Типа на страницу перехожу и чтоб было показано какие конфигурации в формировании этой страницы участвуют.
Допустим я хочу с одного сайта на другой тип материала перенести. Уже не сколько конфигов, как сам тип так и отдельно его форма. А еще поля типа, поля могут на таксономию ссылаться.
Неужели нет такого, что на редактировании типа контента посмотреть все влияемые на него конфиги?
Это же легко. Создаешь на первом сайте тип материала и его поля. Запускаешь drush cex, он тебе пишет имена всех конфигов которые будут созданы. Выписываешь эти имена файлов. Жмешь yes, конфиги экспортируются. Копируешь их на второй сайт, делаешь drush cim
Можно смотреть в зависимости конфигов. Можно использовать гит. Можно использовать разные хранилища конфигов: stage, dev... Сначала сделали экспорт в sync. Создали свой тип материала. Сдели экспорт уже в stage - посмотрели разницу. На другом проекте сделали импорт - cim - вам сказал чего не хватает - донесли.
Можно ещё config:export:content:type
В восьмёрке features полностью основан на конфигах и по сути ничего нового не делает, кроме, выпиливания uuid из конфигов при экспорте, что очень круто при перекидывании конфигов с одного сайта на другой. А features ui позволяет более наглядно видеть зависимости и автоматически их собирать. В общем, это теперь просто ещё один инструмент для работы с конфигурациями.
Потому что это одна инсталяшка Друпала. Т.е. файлы Гитом не перносились с другой. Да,с композером сайт устновлен.
Если я правильно понял, можно полностью на одном сайте экспортипровать конфигурацию, а не другом
drush cim имя_конфига
и оно подтянет все зависимые конфиги. Сейчас разбираюсь.
Комментарии
config split
Не
Начать уже использовать drush cim
итак экспортирую
[notice] Differences of the active config to the export directory:
тут таблица
теперь импортирую:
drush cim --partial
и как только половину конфигов указать?
Никак, нет такой возможности. Можно указать только другой каталог в котором будут нужные конфиги
drush cim --partial --source=modules/modulename/config/install
к примеру
Если ты для импорта используешь drush cim, то он тебе прямо напишет ошибку и что именно ему не нравится
Ему нравится все. Импортирование происходит без проблем.
Моя задача частями перекинуть 1000 файлов конфигов, чтобы узнать какие настройки сайта вызывают проблему. Но не по одному же.
Откуда у тебя 1000 файлов конфигов?
Там вам же сказали уже что drush cim - и там вы увидите что ломает
делаю drush config-export и в config/sync/ выгружается 1000 *yml файлов. Те же самые файлы архивом получаю при экспорте полной конфигурации сайта
drush cim - прекрасно работает - все эти файлы импортирует.
Ну а проблема тогда в чем?
Проблема в том, что после импорта на сайте ряд ошибок, но не с импортом.
Вот я и хочу выявить какая из настроек сайта эти ошибки вызывает. Я думаю так: импортировать 500 из 1000 конфигов. Потом еще 250. И так по названию конфига выловлю какие настройки или какие модули виноваты.
Вот только как импортировать только часть конфигов?
Версия ядра какая? До 8.8.5 ?
Так себе идея. Одни конфиги зависят от других. Нельзя их просто так разделить
Версия ядра у меня последняя зеленая всегда. Хотя бы на группы их разделить можно?
Неужели много (?):
/*Тут было много файлов*/
Мой совет. Заливаешь БД с прода на локалку, делаешь импорт конфигов. Ищешь проблему после импорта и исправляешь ее. После этого делаешь импорт на проде
Примерно для этого я все это и затеял.
Я вот думаю когда происходит drush cim оно ж по одному все конфиги закачивает. Можно ли чтоб оно к следующему файлу переходило после того, как я что-то нажал?
Пока что делаю так.
drush cim > yes
мне пишет
[notice] Синхронизация конфигурации: ...
Периодически стопорю процесс Ctrl+Z. Захожу в админку сайта - ошибки нет.
Но после
[success] The configuration was imported successfully.
ошибка на сайте появляется.
Причем я очень удачно застопорил процесс за 2 шага да [success]. Даже в это время ошибки на сайте не было. А вот после [success] - появилась.
Что-то можно посоветовать?
Ты бы поделился с сообществом текстом своей ошибки
https://www.drupal.org/project/config_ignore
В помощь вам.
Он не знает в чем проблема, что он должен игнорить? Наугад выбирать?
Ряд в студию.
Ряд можно увидеть в соседних темах созданных мной. Например есть проблема: нельзя указать у термина родитель. подозреваю это влияет на другие мои темы.
Проверил еще раз:
...
[notice] Синхронизация конфигураций: update core.entity_view_display.node.forum.teaser.
[notice] Синхронизация конфигураций: update core.entity_view_display.node.forum.default.
^Z
[8]+ Stopped drush cim > yes
тут ошибки нет - термины нормально редактируются. И это последнее, что пишет в синхронизации конфигураций
[notice] Завершение синхронизации конфигурации.
[success] The configuration was imported successfully.
и после этого редактировать термины нельзя
Может есть какая-то команда чтобы импортировать конфигурацию до упора, но не кончать ее?
Вообще насколько мои методы рабочие? Проблему то я решаю. Кто-то еще делает так?
Хорошо, тогда другой вопрос. Файлы конфигураций хранятся в config/sync/.
Если все файлы оттуда удалить, как их обратно сгенерировать?
drush cex
drush cex выдает:
#1 [папка сайта]/web/core/lib/Drupal/Core/Config/ExportStorageManager.php(87): Drupal\Core\Config\ExportStorageManager::replaceStorageContents(Object(Drupal\Core\Config\CachedStorage), Object(Drupal\Core\Config\DatabaseStorage))
Убедись, что каталог для конфигов прописан в settings.php и что он доступен веб-серверу на запись
В settings все по умолчанию:
$settings['config_sync_directory'] = '../config/sync';
сайт через composer установлен
на запись думаю доступно, т.к. ошибка происходит только после того, как /config/sync очищено.
https://www.drupal.org/project/drupal/issues/3100479#comment-13462136
Попробуй удалить конфиг проблемной вьюхи и потом импортировать заново
Я как бы не знаю какая вьюха проблемная.
Ну и у меня задача, не импортировать, а экспортировать. Пока что после очистки /config/sync мне это не удается.
В тексте ошибки вьюха указана.
Продолжай игнорировать советы по устранению ошибок, подождем пока проблема пройдет сама собой
"В тексте ошибки вьюха указана" - теперь понял. После удаления вьюхи ошибка по drush cex также пишется.
Кароче я понял что моими методами БД получается кривой.
А можно как-то перенести конфигурации с одного сайта на другой не зная названий самих конфигураций? Типа на страницу перехожу и чтоб было показано какие конфигурации в формировании этой страницы участвуют.
зачем такие сложности?
Допустим я хочу с одного сайта на другой тип материала перенести. Уже не сколько конфигов, как сам тип так и отдельно его форма. А еще поля типа, поля могут на таксономию ссылаться.
Неужели нет такого, что на редактировании типа контента посмотреть все влияемые на него конфиги?
Это же легко. Создаешь на первом сайте тип материала и его поля. Запускаешь drush cex, он тебе пишет имена всех конфигов которые будут созданы. Выписываешь эти имена файлов. Жмешь yes, конфиги экспортируются. Копируешь их на второй сайт, делаешь drush cim
"он тебе пишет имена всех конфигов" так мне не надо всех, надо только те, что влияют на тип материала
Попробуй читать внимательнее. Я писал "он тебе пишет имена всех конфигов которые будут созданы"
А созданы будут именно те, которые относятся к твоему новому типу материала
И естественно, нужно перед созданием нового типа материала выгрузить конфиги, чтобы потом не путаться где старые, а где новые
Можно смотреть в зависимости конфигов. Можно использовать гит. Можно использовать разные хранилища конфигов: stage, dev... Сначала сделали экспорт в sync. Создали свой тип материала. Сдели экспорт уже в stage - посмотрели разницу. На другом проекте сделали импорт - cim - вам сказал чего не хватает - донесли.
Можно ещё config:export:content:type
Поставь features, включи features ui, он показывает, кто от кого зависит. Кроме того он позволяет экспортировать конфиги частями.
Честно говоря был неудачный опыт работы с фичерс в D7 и это как бы стало причиной перехода на D8. Ну я посмотрю привнесли ли что-то новое.
В восьмёрке features полностью основан на конфигах и по сути ничего нового не делает, кроме, выпиливания uuid из конфигов при экспорте, что очень круто при перекидывании конфигов с одного сайта на другой. А features ui позволяет более наглядно видеть зависимости и автоматически их собирать. В общем, это теперь просто ещё один инструмент для работы с конфигурациями.
Есть подозрение что ты не делаешь drush install после пула.
Врядли. все происходящее в этой теме на одной инсталяшке Друпала через Компосер и без Гита.
А почему без компостера и без гита?
Потому что это одна инсталяшка Друпала. Т.е. файлы Гитом не перносились с другой. Да,с композером сайт устновлен.
Если я правильно понял, можно полностью на одном сайте экспортипровать конфигурацию, а не другом
drush cim имя_конфига
и оно подтянет все зависимые конфиги. Сейчас разбираюсь.
Как это связано с использованием гита?
Гит в одно рыло нужен хотя бы, чтобы башка мусор не забивать.
Не компостер конечно, но:
drush cex
drush cim