8.7.1へのアップデート(8.6.xから)をテストしました。これには、古いエンティティ自動更新機能の削除が含まれています。つまり、drush entup
が機能しなくなりました。 変更レコード を理解している限り、開発者は更新フック内で更新を実行する必要があります。ただし、コアをcomposerで更新し、データベースの更新を実行すると(エラーなしで実行されました)、ステータスレポートに警告が表示されます。
エンティティタイプとフィールド定義で次の変更が検出されました。
taxonomy_termエンティティタイプ:
モデレート状態フィールドをインストールする必要があります。
しかし、ドラッシュなしentity-update
、私はここで何をすることになっているかわからない。更新を実行するにはどうすればよいですか? Drush dbup
は正常に実行され(現在、未解決の更新は報告されません)、drush entup
は機能しなくなりました。このエラーをどのように処理できますか?
記録のために、これは最初のdrush updbの出力ですが、関連しているかどうかはわかりません:
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.
1つのオプションは、この正確な目的のために作成された新しい Devel Entity Updates モジュールを使用することです。
#2976035:エンティティタイプのCRUD操作では、最後にインストールされたエンティティタイプとフィールドストレージ定義を使用する必要があります drush entupを実行する機能が削除されました。詳細は 関連する変更レコード を参照してください。このプロジェクトは、開発者専用ツールとしてこの機能を復元することを目的としています。このモジュールは Devel に依存しており、本番環境で有効にしたり、展開ワークフローで依存したりすることを意図していません。
もう一度更新フックに入れます。 your_module_name.installファイルに入れます。 (インストール時にモジュールにすでに存在していることを確認してください。それ以外の場合は、他のモジュールのインストールファイルに入れてください)
/**
* 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';
}
}
@MoritzLostで指摘されているように、drush entup
は回避策です。適切な解決策は、WBMパッチに依存するか、8.7に更新する前にリリースされるのを待つことです。詳細は https://www.drupal.org/project/devel_entity_updates/issues/3082442 で入手できます。