Как обновить ядро через composer

Аватар пользователя remmor

Поставил композер глобально на комп на windows 7, натравил его на денвер, composer успешно встал.

composer update --with-dependencies

Перешел в папку с сайтом, сделал команду выше, но ядро он так обновлять отказывается обновилось только с 8.4.6 до 8.4.8 - далее (а текущая 8.6.*) отказывается.

Как обновить ядро, что ещё ставить надо?

Выдает вот такое. И где этот белый список?

А если папки удалить core и vendor - то на первом этапе через строку пишет

Class Drupal\Core\Composer\Composer is not autoloadable, can not call post-package-install script

Модули и темы:
Тип материала:
Версия Drupal:
0 Thanks

Лучший ответ

Аватар пользователя gun_dose
gun_dose 3 недели назад
1

Если композер глючит, надо удалять composer.lock, а также папки vendor и core. Обычно это не требуется, но по личному наблюдению вероятность такого глюка при обнове порядка 10-20%

Комментарии

Аватар пользователя itcrowd72
itcrowd72 3 недели назад

В composer.json у drupal/core попробуйте указать версию ~8.4

Аватар пользователя remmor
remmor 3 недели назад

Это в composer.json или где? Каким параметром? А то я там указал

"replace": {
"drupal/core": "^8.6"
},

Он мне взял и весь Друпал удалил, хорошо бэкап был

Аватар пользователя gun_dose
gun_dose 3 недели назад
1

Если композер глючит, надо удалять composer.lock, а также папки vendor и core. Обычно это не требуется, но по личному наблюдению вероятность такого глюка при обнове порядка 10-20%

Аватар пользователя remmor
remmor 3 недели назад

Да он вроде не глючит. Это я сам добавил вот такую инструкцию, и он удалил старую версию, видимо штатное поведение. Потом убрал

Аватар пользователя gun_dose
gun_dose 3 недели назад

Ну он так и должен - старое удалил, новое залил. Но если происходит глюк, то новая версия не заливается или заливается в субдиректорию, из-за чего ничего вообще не работает. В этом плане, что npm, что composer ведут себя абсолютно одинаково - в любой непонятной ситуации удаляем .lock файлы и скачанные пакеты и инсталлим всё на свежую голову.

Аватар пользователя remmor
remmor 3 недели назад

в каком смысле инсталим по новой? Сайт не новый.
Я вон директиву выше привел - может он штатно так отработал? Стоит 8.4.8, я поставил replace - и видимо он удалил лишнее

Аватар пользователя gun_dose
gun_dose 3 недели назад

В смысле удаляем вендоров и ядро и выполняем команду composer install, чтобы всё, что тянется из внешних репозиториев перезалилось по новой. Сайт при этом не переустанавливается, т.к. база данных, пользовательские файлы и кастомный код остаются нетронутыми.

Аватар пользователя remmor
remmor 3 недели назад

Я стандартный composer update --with-dependencies выполнил после удаления пары папок и всё заработало все сдохло

Аватар пользователя remmor
remmor 3 недели назад

Даже lock удалять не пришлось. И правда, снес пару папок и система все докачала
не, сайт обновился, но сдох...

Аватар пользователя remmor
remmor 3 недели назад
gun_dose написал:
В смысле удаляем вендоров и ядро и выполняем команду composer install

То есть папку core, папку vendors и папку .git и .idea? А может глючить, если у меня не стоит никакого гита? А он точно тогда последнюю закачает, если из корня не удалить composer.json?

Аватар пользователя remmor
remmor 3 недели назад

короче что ж никто не сказал, что надо потом ручками update.php все равно запускать.

Аватар пользователя gun_dose
gun_dose 3 недели назад

Я думал, это само собой разумеется)) это всегда надо делать, независимо от версии друпал и от способа обновления. Ну зато теперь в следующий раз точно не забудете 😀