RuntimeException: Tidak dapat menentukan kelas untuk tipe bidang yang ditemukan dalam konfigurasi


11

Situs web saya mendapatkan kesalahan ini, saat memperbarui dari Drupal 8.3.7 ke Drupal 8.4.0, dan saya tidak dapat menyelesaikannya.

Situs web mengalami kesalahan yang tidak terduga. Silakan coba lagi nanti. RuntimeException: Tidak dapat menentukan kelas untuk tipe bidang 'webform' yang ditemukan di konfigurasi 'field.storage.node.webform' di Drupal \ field \ FieldStorageConfigStorage-> mapFromStorageRecords () (baris 157 dari core / modules / field / src / FieldStorageConfigStorage. php).


Saya pikir ini tidak terhubung ke versi D8. Mungkin semua versi akan melaporkan kesalahan yang sama ketika Anda memiliki bidang yang dikonfigurasikan dalam tipe konten di mana kode untuk tipe bidang tidak dapat ditemukan.
4k4

Jawaban:


35

Salah satu cara yang mungkin adalah bahwa modul Anda tidak ada dari basis kode atau telah dihapus secara tidak benar dan Anda masih memiliki bidang yang menggunakan modul yang hilang itu.

Coba perintah berikut drush/ SQL untuk menghapus bidang yang rusak:

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%'"

Peringatan : Jangan jalankan perintah di atas pada database master / live. Buat cadangan sebelum melakukan perubahan basis data apa pun.

Di mana field.storage.xxx.xxxjenis penyimpanan bidang yang Anda laporkan (mis field.storage.node.webform.).

Jika di atas tidak akan membantu, periksa referensi lain dengan:

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

Pada akhirnya Anda perlu membangun kembali cache Anda:

drush cr

1
Terima kasih banyak atas solusinya. Ini pasti akan membantu.

1
Ini benar-benar harus menjadi jawaban yang diterima
Mrweiner

Terima kasih @kenorb untuk jawaban yang bagus ini. +1
Beto Aveiga

2

Saya memiliki kesalahan yang sama dengan modul lain (alamat dalam kasus saya). Saya dapat memperbaikinya dengan menginstal ulang modul terkait dengan drupal console dengan perintah berikut:

drupal module:install address

Dan kembali ke bisnis :)


+1 ya saya menemukan ini berfungsi juga.
therobyouknow

Saya melakukan instal ulang dengan composer require drupal/address - seperti yang dilakukan orang lain di sini: drupal.org/project/address/issues/2868049#comment-12044874
therobyouknow
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.