web-dev-qa-db-ja.com

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

Drupal 8.3.7からDrupal 8.4.0に)を更新中に、私のウェブサイトでこのエラーが発生し、解決できません。

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

11
user79200

考えられる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%'"

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

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

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

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

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

drush cr
35
kenorb

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

drupal module:install address

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

2