สิ่งนี้สามารถแก้ไขได้โดยติดตั้ง Drupal ใหม่หรือคัดลอกตารางจากการติดตั้ง Drupal ที่สดใหม่ลงในอินสแตนซ์ที่ใช้งานไม่ได้ของคุณ
หรือคุณสามารถลองวิธีแก้ปัญหาต่อไปนี้ (ทำได้เฉพาะเมื่ออินสแตนซ์ Drupal ของคุณเสียแล้ว):
สำรองข้อมูลตารางรีจิสทรีเก่าก่อน (ในกรณี):
drush sqlq "CREATE TABLE registry_bak LIKE registry; INSERT INTO registry_bak SELECT * FROM registry;"
drush sqlq "CREATE TABLE system_bak LIKE system; INSERT INTO system_bak SELECT * FROM system;"
ล้างแคช bootstrap และตารางรีจิสตรี
drush sqlq "TRUNCATE cache_bootstrap; TRUNCATE registry"
แทรกข้อมูลพื้นฐานลงในตารางรีจิสทรี:
drush sqlq 'INSERT INTO registry (name, type, filename) VALUES ("SelectQueryExtender", "class", "includes/database/select.inc"), ("DrupalDefaultEntityController", "class", "includes/entity.inc");'
drush eval "registry_update();"
ล้างแคช:
drush -y cc all
หากการล้างแคชใน 4 ล้มเหลวเนื่องจากคลาสที่หายไปบางคลาสคุณสามารถ:
a) เพิ่มคลาสที่หายไปด้วยตนเองในตัวอย่าง:
$ drush -y cc all
Fatal error: Class 'Entity' not found in profile2.module on line 593
$ grep -Rwl "^class Entity" .
./sites/all/modules/entity/includes/entity.inc
$ drush sqlq 'INSERT INTO registry (name, type, filename) VALUES ("Entity", "class", "sites/all/modules/entity/includes/entity.inc");'
$ drush -y cc all # testing...
# If Fatal error:, repeat 5a. again.
หรือ:
b) พยายามปิดการใช้งานโมดูล contrib ที่ล้มเหลว (เช่น profile2, กฎ) โดย:
drush sqlq 'UPDATE system SET status = 0 WHERE name = "failing_module"'
และทำซ้ำขั้นตอนที่เริ่มต้นจาก 4
หากมีบางอย่างเสียหายมากกว่าเดิมคุณสามารถคืนค่าตารางของคุณกลับสู่จุดเดิม (ซึ่งดำเนินการในขั้นตอนที่ 1) โดย:
drush sqlq "TRUNCATE registry; INSERT INTO registry SELECT * FROM registry_bak;"
drush sqlq "TRUNCATE system; INSERT INTO system SELECT * FROM system_bak;"
และลองอีกครั้ง
drush rr
ล้มเหลว