RuntimeException:構成で見つかったフィールドタイプのクラスを判別できません


11

Drupal 8.3.7からDrupal 8.4.0に更新しているときに、私のWebサイトでこのエラーが発生し、解決できません。

Webサイトで予期しないエラーが発生しました。後でもう一度やり直してください。RuntimeException:Drupal \ field \ FieldStorageConfigStorage-> mapFromStorageRecords()の 'field.storage.node.webform'設定にあるフィールドタイプ 'webform'のクラスを特定できません(core / modules / field / src / FieldStorageConfigStorageの157行目)。 php)。


これはD8バージョンとは関係がないと思います。おそらく、フィールドタイプのコードが見つからないコンテンツタイプでフィールドが構成されている場合、すべてのバージョンで同じエラーが報告されます。
2017

回答:


34

考えられる1つの方法は、モジュールがコードベースから欠落しているか、不適切にアンインストールされていて、欠落しているモジュールを使用しているフィールドがまだあることです。

次のdrush/ SQLコマンドを実行して、壊れたフィールドを削除します。

drush sqlq "DELETE FROM cache_config"
drush sqlq "DELETE FROM config WHERE name = 'field.storage.xxx.xxx' OR data LIKE '%field.storage.xxx.xxx%'"
drush sqlq "DELETE FROM config_snapshot  WHERE name = 'field.storage.xxx.xxx' OR data LIKE '%field.storage.xxx.xxx%'"

警告:master / liveデータベースで上記のコマンドを実行しないでください。データベースの変更を行う前にバックアップを作成します。

field.storage.xxx.xxx報告されたフィールドストレージタイプはどこにありますか(例:)field.storage.node.webform

上記で問題が解決しない場合は、次の方法で他の参照を確認してください。

drush sql-dump --ordered-dump | grep field.storage.xxx.xxx

最後に、キャッシュを再構築する必要があります。

drush cr

1
解決策をありがとうございました。それは確かに役立つでしょう。

1
これは絶対に受け入れられる答えになるはずです
Mrweiner

この素晴らしい答えを@kenorbに感謝します。+1
Beto Aveiga

2

別のモジュール(私の場合はアドレス)で同様のエラーが発生しました。次のコマンドでdrupalコンソールを使用して該当するモジュールを再インストールするだけで修正できます。

drupal module:install address

そしてビジネスに戻る:)


+1はい、これも機能することがわかりました。
therobyouknow

私は再インストールを行いましたcomposer require drupal/address -他の誰かがここで行ったように:drupal.org/project/address/issues/2868049#comment-12044874
therobyouknow
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.