Rumah >pembangunan bahagian belakang >tutorial php >Drupal: Alih keluar pemalam hantu daripada pangkalan data

Drupal: Alih keluar pemalam hantu daripada pangkalan data

WBOY
WBOYasal
2024-07-16 13:27:57341semak imbas

Drupal: Rimuovere un plugin fantasma dal database

Sumber: https://drupal.stackexchange.com/questions/315921/removing-phantom-plugin-from-database/320215#320215

Ia mungkin berlaku apabila anda menyahpasang modul, prosedur tidak dijalankan sepenuhnya atau tiada prosedur penyingkiran hadir, atas sebab ini pangkalan data kekal "kotor".
Biasanya ralat yang disebabkan oleh mengalih keluar pemalam secara paksa adalah ini:

[error]  Drupal\Component\Plugin\Exception\PluginNotFoundException:
         The "name-of-plugin" entity type does not exist.
         in Drupal\Core\Entity\EntityTypeManager->getDefinition()

Mendayakan konfigurasi yang menunjukkan semua mesej ralat boleh membantu anda memahami di mana ralat itu wujud dan di mana tindakan perlu diambil.
Anda boleh mengaktifkan pendayaan log penuh pada halaman admin/config/development/logging di sini. Konfigurasi ini boleh membantu anda mengetahui sama ada masalahnya ialah konfigurasi atau nama pemalam dikodkan keras ke dalam kod anda.

Sekarang kami akan menangani cara menyelesaikan masalah jika ia dikaitkan dengan konfigurasi dan untuk berbuat demikian kami mempunyai dua cara yang mungkin:

  • Mengeksport keseluruhan konfigurasi dan mengimportnya semula selepas mengalih keluar rujukan pemalam
  • Dengan bertindak terus pada konfigurasi yang terdapat dalam db dan mengalih keluar pemalam

Mengeksport keseluruhan konfigurasi dan mengimportnya semula

Penyelesaian ini berkemungkinan besar antara yang paling banyak digunakan jika anda mengikuti metodologi keluaran standard yang disyorkan oleh komuniti Drupal.
Eksport keseluruhan konfigurasi melalui antara muka grafik atau dengan perintah drush config:export. Dalam fail yang dipulihkan daripada eksport, lakukan carian teks penuh dengan nama pemalam. Alih keluar bahagian konfigurasi yang menyebabkan ralat dan import konfigurasi dengan drush config:import

Dengan bertindak secara langsung pada konfigurasi yang terdapat dalam db dan mengalih keluar pemalam

Penyelesaian ini berguna untuk mereka yang, seperti saya, tidak mempunyai kemungkinan untuk mengeksport keseluruhan konfigurasi dan mengimportnya semula tetapi perlu bekerja "panas" di tapak.
Untuk mencari konfigurasi yang menyebabkan ralat anda boleh menjalankan pertanyaan ini pada db:

SELECT name FROM config WHERE data LIKE "%name-of-plugin%";

Pertanyaan mencari jadual konfigurasi untuk pemalam yang menyinggung perasaan dan mengembalikan nama konfigurasi yang menggunakan pemalam.

Apabila anda mempunyai nama konfigurasi, anda boleh meneruskan untuk mengalih keluar pemalam.
Bergantung pada pemalam dan konfigurasi dalam kesilapan, kaedah pengalihan keluar mungkin berubah sedikit, sekarang mari kita pertimbangkan contoh yang juga boleh menjadi titik permulaan yang baik untuk kes lain.

Cth.
Saya menghadapi masalah dengan pemalam filter_image_lazy_load kerana kemas kini Drupal 10 yang buruk.
Pertanyaan sebelumnya mengembalikan konfigurasi ini:

filter.format.basic_html
filter.format.full_html
filter.format.restricted_html

Dengan perkhidmatan config.factory saya memuatkan konfigurasi dan menyemak di mana masalah itu wujud. Kemudian anda boleh meneruskan untuk mengalih keluar pemalam seperti ini:

$configName = 'filter.format.basic_html';
$config = \Drupal::service('config.factory')->getEditable($configName);
$filters = $config->get('filters');
unset($filters['filter_image_lazy_load']);
$config->set('filters', $filters)->save()

Anda boleh melakukan perkara yang sama dengan drush config:get filter.format.basic_html dan drush config:set filter.format.basic_html atau sekali gus dengan drush config:edit filter.format.basic_html

Selepas membersihkan konfigurasi jalankan cache drush:bina semula dan ralat harus diselesaikan!

Atas ialah kandungan terperinci Drupal: Alih keluar pemalam hantu daripada pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn