Je viens de tester la mise à jour vers 8.7.1 (à partir de 8.6.x) qui inclut la suppression de l'ancienne fonctionnalité de mise à jour automatique des entités, ce qui signifie drush entup
ne fonctionne plus. Pour autant que je comprenne le change record , les développeurs doivent maintenant effectuer les mises à jour dans les hooks de mise à jour. Cependant, après avoir mis à jour le noyau avec composer et effectué la mise à jour de la base de données (qui s'est déroulée sans aucune erreur), je reçois un avertissement dans le rapport d'état:
Les modifications suivantes ont été détectées dans le type d'entité et les définitions de champ.
type d'entité taxonomy_term:
Le champ État de modération doit être installé.
Mais sans le drush entity-update
, Je n'ai aucune idée de ce que je suis censé faire ici. Comment effectuer la mise à jour? Drush dbup
s'est déroulé avec succès (et ne signale plus aucune mise à jour en attente), ce qui ne fonctionne plus avec drush entup
. Comment gérer cette erreur?
Pour mémoire, il s'agit de la sortie de la première mise à jour drush, je ne sais pas si elle est pertinente:
server:~/httpdocs$ drush updb
------------------- ----------------------------------------------- --------------- -----------------------------------------------------------------------------
Module Update ID Type Description
------------------- ----------------------------------------------- --------------- -----------------------------------------------------------------------------
system 8701 hook_update_n Remove the unused 'system.theme.data' from state.
system 8702 hook_update_n Add the 'revision_translation_affected' entity key.
file 8700 hook_update_n Set the 'owner' entity key and update the field.
node 8700 hook_update_n Set the 'owner' entity key and update the field.
taxonomy 8701 hook_update_n Add an index on the 'taxonomy_term__parent' field table.
menu_link_content make_menu_link_content_revisionable post-update Update custom menu links to be revisionable.
system add_expand_all_items_key_in_system_menu_block post-update Initialize 'expand_all_items' values to system_menu_block.
system clear_menu_cache post-update Clear the menu cache. @see https:www.drupal.orgprojectdrupalissues3044364
system fix_jquery_extend post-update Clear the library cache and ensure aggregate files are regenerated.
taxonomy make_taxonomy_term_revisionable post-update Update taxonomy terms to be revisionable.
taxonomy remove_hierarchy_from_vocabularies post-update Remove the 'hierarchy' property from vocabularies.
views exposed_filter_blocks_label_display post-update Update exposed filter blocks label display to be disabled.
views make_placeholders_translatable post-update Rebuild cache to allow placeholder texts to be translatable.
------------------- ----------------------------------------------- --------------- -----------------------------------------------------------------------------
Do you wish to run the specified pending updates? (yes/no) [yes]:
> yes
[notice] Update started: system_update_8701
[ok] Update completed: system_update_8701
[notice] Update started: system_update_8702
[ok] Update completed: system_update_8702
[notice] Update started: file_update_8700
[ok] Update completed: file_update_8700
[notice] Update started: node_update_8700
[ok] Update completed: node_update_8700
[notice] Update started: taxonomy_update_8701
[ok] Update completed: taxonomy_update_8701
[notice] Update started: menu_link_content_post_update_make_menu_link_content_revisionable
[notice] Custom menu links have been converted to be revisionable.
[ok] Update completed: menu_link_content_post_update_make_menu_link_content_revisionable
[notice] Update started: system_post_update_add_expand_all_items_key_in_system_menu_block
[ok] Update completed: system_post_update_add_expand_all_items_key_in_system_menu_block
[notice] Update started: system_post_update_add_expand_all_items_key_in_system_menu_block
[ok] Update completed: system_post_update_add_expand_all_items_key_in_system_menu_block
[notice] Update started: system_post_update_clear_menu_cache
[ok] Update completed: system_post_update_clear_menu_cache
[notice] Update started: system_post_update_fix_jquery_extend
[ok] Update completed: system_post_update_fix_jquery_extend
[notice] Update started: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Taxonomy terms have been converted to be revisionable.
[ok] Update completed: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Update started: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Taxonomy terms have been converted to be revisionable.
[ok] Update completed: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Update started: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Taxonomy terms have been converted to be revisionable.
[ok] Update completed: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Update started: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Taxonomy terms have been converted to be revisionable.
[ok] Update completed: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Update started: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Taxonomy terms have been converted to be revisionable.
[ok] Update completed: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Update started: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Taxonomy terms have been converted to be revisionable.
[ok] Update completed: taxonomy_post_update_make_taxonomy_term_revisionable
[notice] Update started: taxonomy_post_update_remove_hierarchy_from_vocabularies
[ok] Update completed: taxonomy_post_update_remove_hierarchy_from_vocabularies
[notice] Update started: views_post_update_exposed_filter_blocks_label_display
[ok] Update completed: views_post_update_exposed_filter_blocks_label_display
[notice] Update started: views_post_update_exposed_filter_blocks_label_display
[ok] Update completed: views_post_update_exposed_filter_blocks_label_display
[notice] Update started: views_post_update_make_placeholders_translatable
[ok] Update completed: views_post_update_make_placeholders_translatable
[success] Finished performing updates.
Une option consiste à utiliser le nouveau module Devel Entity Updates , qui a été construit dans ce but précis:
Dans # 2976035: Les opérations CRUD de type d'entité doivent utiliser le dernier type d'entité installé et les définitions de stockage sur le terrain la possibilité d'exécuter l'entraînement drush a été supprimée, voir l'enregistrement de modification connexe pour plus de détails . Ce projet vise à restaurer cette fonctionnalité en tant qu'outil réservé aux développeurs. Ce module dépend de Devel et n'est pas censé être activé dans les environnements de production ou utilisé dans les workflows de déploiement.
Remettez-le dans un crochet de mise à jour. Placez-le dans le fichier your_module_name.install. (Assurez-vous qu'il existait déjà dans le module lors de l'installation, sinon placez-le dans un autre fichier d'installation des modules)
/**
* Update- Create your_entity_name entity.
*/
function your_module_name_update_8002() {
//check if the table exists first. If not, then create the entity.
if(!db_table_exists('your_entity_name')) {
\Drupal::entityTypeManager()->clearCachedDefinitions();
\Drupal::entityDefinitionUpdateManager()
->installEntityType(\Drupal::entityTypeManager()->getDefinition('your_entity_name'));
}
else {
return 'your_entity_name entity already exists';
}
}
Comme l'a souligné @MoritzLost, en s'appuyant sur drush entup
est une solution de contournement. La solution appropriée serait de s'appuyer sur le correctif WBM ou d'attendre qu'il soit publié avant de mettre à jour vers 8.7. Plus de détails disponibles sur https://www.drupal.org/project/devel_entity_updates/issues/3082442 .