web-dev-qa-db-ja.com

壊れたブロックまたは欠落しているブロックを修正する方法は?

Drupal 8サイトでは、次のようなブロックのエラーが表示されます。

このブロックは壊れているか欠落しています。コンテンツがないか、元のモジュールを有効にする必要がある場合があります。

このエラーを解決するにはどうすればよいですか?

5
madan kumar

カスタムブロックを作成し、カスタムブロックをリージョンに配置した後、カスタムブロックを失ったか、削除されたか、1つの環境から構成のエクスポートを作成し、他の環境から構成のインポートを作成しました。そのため、カスタムブロックは存在しなくなりましたが、ブロックレイアウトページ(admin/structure/block)に参照が存在します。

そのため、ブロックレイアウトページ(admin/structure/block)から欠落しているブロックを削除し、カスタムブロックを再度作成して、リージョンに再度配置します。

この問題について議論しているコアな問題があります: https://drupal.org/project/drupal/issues/2756331

これは、このモジュールを使用して克服することもできます: https://www.drupal.org/project/recreate_block_content

9

ブロックの配置は設定として保存されます。これがエクスポートされ、環境間で同期されます。ブロックの実際のコンテンツは、contentと正確に見なされます。つまり、新しい構成を別の環境にインポートする(またはブロックを削除してから構成を再インポートする)と、ブロックの構成と実際のブロックインスタンス(存在しなくなります)の間に不一致が生じます。

この問題を解決するには、欠落しているブロックの構成を削除してから、ブロックを再作成する必要があります。これにより、サイトで不一致を解決できます。

別のオプションは fixed_block_content 提供されたモジュールを使用してこのプロセスを管理することです。

Drupalまさにこのことを論じるコアの問題があります。 https://drupal.org/project/drupal/issues/2756331

6
lukedekker

ビューに関しても同じ問題がありました。別のテーマを試した後、Viewsブロックの一部が失われました。チェックしたところ、実際のビューが無効になりました。ビューページに移動して、ビューと表示されたすべてのブロックを期待どおりに「有効にする」ことで、復元できました。

3
Antoine Holman

私自身、これに遭遇しました。モジュールやパッチを使用してもうまくいきませんでした。データベースの修正ルートを実行し、これがUUIDまたはIDと関係があると考えています。すべてうまくいきます。これを修正するために私のために働いたのは、block_content_field_dataテーブルを作成し、フィールドreusableの既存のすべてのブロックがNULLではないことを確認しました

次に、サイトのキャッシュをクリアすると、不足しているカスタムブロックが表示されます。これまでのところ、この回避策は私にとってうまくいきました。

ああ、私は現時点で8.6.13です。

2
EL Abquina

これは、ブロックが作成されると、一意のID(uuid)が生成されるために発生します。これは、block_contentテーブルから確認できます。

カスタムブロックはノードに似たコンテンツの一部であるため、ある環境(devなど)でブロックを作成し、別の環境(実稼働またはQA)でブロックを手動で再作成する場合。ブロックには別のuuidがあります。

構成の同期は、存在しないUUIDを探します。これを修正するには、データベースからデータをインポートする必要があります。または、次のテーブルで(idおよびuuid)を更新します。

block_content;

block_content_field_data;

block_content__body;

block_content_field_revision;

block_content_revision;

block_content_revision__body;

2
Marcelo

私の問題は、devにのみ存在するブロックと、他の場所には存在しないブロックを指す構成によって引き起こされました。それはレイアウトビルダーで登場しました。私はDrupal 8.7.6を使用しています。レイアウトビルダーに移動して、不良ブロック参照を削除し、正しいブロックを再度追加するだけで問題は解決しました。問題を再現しないように、構成を再エクスポートしてリポジトリを更新する必要がありました。

1
Grant