Рейтинг:0

Run into issues with Drush after updating from 8.9.20 to 9.3.13

флаг jp

I upgraded from 8.9.20 to 9.3.13 and i did an update.php after this. I do get an error:

MISSING UPDATES FOR: VIEWS The installed version of the Views module is too old to update. Update to a version prior to 9.0.0 first (missing updates: views_post_update_remove_core_key).

If i try to update the databse with drush updatedb i get an error too:

In BootstrapHook.php line 36: Bootstrap failed. Run your command with -vvv for more information.

Is there any chance to solve this issue?

This is the status: Drupal version : 9.3.13
Site URI : http://default
DB driver : mysql
DB hostname : localhost
DB port : 3306
DB username : xxx
DB name : xxx
PHP binary : /usr/local/Cellar/php/8.0.3/bin/php
PHP config : /usr/local/etc/php/8.0/php.ini
PHP OS : Darwin
Drush script : /usr/local/bin/drush
Drush version : 11.0.9
Drush temp : /tmp
Drush configs : /Users/mb/Sites/vendor/drush/drush/drush.yml /Users/mb/drush/drush.yml
Drupal root : /Users/mb/Sites
Site path : sites/default

Thanks for helping!

4uk4 avatar
флаг cn
Что непонятного в сообщении об ошибке, что нужно запускать update.php до, а не только после обновления?
флаг id
Рассматривали ли вы запуск своей команды с параметром -vvv для получения дополнительной информации?
флаг id
https://www.drupal.org/project/drupal/issues/3169345#comment-14295352
Рейтинг:1
флаг cn

Функция views_post_update_remove_core_key появился в Drupal 8.8 и был удален в Drupal 9.0. Видеть views_removed_post_updates.

Чтобы избежать этой ошибки и, возможно, других подобных ошибок, вам нужно запустить update.php или драш updb по крайней мере один раз с Drupal 8.8.12 или Drupal 8.9.20 (убедитесь, что он работает без ошибок, пока вы все еще используете Drupal 8), прежде чем вы сможете обновить код до Drupal 9. Затем запуск update.php на Drupal 9 не должен скиньте эту ошибку.


Вы можете добавить обновления пропущенных сообщений в состояние вашей установки Drupal.

$key_value = \Drupal::service('keyvalue');
$existing_updates = $key_value->get('post_update')->get('existing_updates', []);
$post_updates = [
  'update_test_postupdate_post_update_foo',
  'update_test_postupdate_post_update_bar',
  'update_test_postupdate_post_update_pub',
  'update_test_postupdate_post_update_baz',
];
$key_value->get('post_update')->set('existing_updates', array_merge($existing_updates, $post_updates));

(Код из UpdatePostUpdateTest)

а потом запускать пропущенные обновления самостоятельно. В этом примере вы можете просто пересохранить все представления вручную.

druplash avatar
флаг jp
Спасибо! Это означает, что я должен вернуться к 8.9.20 и снова начать процедуру обновления и обновления? Или у меня есть шанс решить это в этой ситуации?
4uk4 avatar
флаг cn
Вы можете попробовать, см. отредактированный ответ. Но может быть гораздо больше кода обновления. Маловероятно, что это только одна функция обновления поста.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.