ฉันกู้คืนข้อมูลสำรองจากการผลิตในเครื่องและพยายามย้ายสิ่งต่าง ๆ และกด admin / modules หรือเรียกใช้ registry_rebuild () แต่ไม่ได้หยุดข้อผิดพลาดร้ายแรงจากการถูกโยนทิ้ง สิ่งนี้สมเหตุสมผลสำหรับฉันเนื่องจากบางโมดูลอาจใช้การรวมหรือสิ่งใดก็ตามใน hook_init () หรือคุณอาจมีชุดเราเตอร์เมนูพา ธ ที่ขึ้นอยู่กับโมดูล ในที่สุดนี่คือสิ่งที่ฉันทำ (เส้นทางของคุณอาจแตกต่างกัน):
ขั้นตอนที่ 1: แทนที่ sites / all / modules ด้วย sites / all / modules / contrib
UPDATE system SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib');
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib');
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib');
ขั้นตอนที่ 2: แทนที่ sites / all / modules / contrib ด้วย sites / all / modules / custom สำหรับ Custom namespaced modules
UPDATE system SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/custom') WHERE name LIKE 'my_custom_namespace_%';
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/custom') WHERE name LIKE 'my_custom_namespace_%';
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/custom') WHERE filename LIKE '%my_custom_namespace_%';
ขั้นตอนที่ 3: ย้ายโมดูล dev ไปยังไซต์ / all / modules / dev
UPDATE system SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/dev') WHERE name LIKE 'devel%';
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/dev') WHERE name LIKE 'devel%';
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/dev') WHERE filename LIKE '%devel%';
ขั้นตอนที่ 4: ล้างแคชเพื่อให้สิ่งต่าง ๆ สามารถบู๊ตได้อย่างถูกต้อง
TRUNCATE TABLE cache
TRUNCATE TABLE cache_bootstrap
TRUNCATE TABLE cache_menu
TRUNCATE TABLE cache_page
TRUNCATE TABLE cache_path
หมายเหตุ:หากคุณใช้โมดูลที่กำหนดเองหรือ contrib เช่น LoginToboggan เพื่อจัดการ 403 (การเข้าถึงถูกปฏิเสธ) และคุณได้ออกจากระบบในระหว่างกระบวนการนี้คุณอาจต้องอัปเดตinclude_file
คอลัมน์ในmenu_roter
ตารางเพื่อใช้พา ธ ใหม่สำหรับไฟล์ include . นี่อาจเป็นเหตุการณ์ที่เกิดขึ้นได้ยาก
UPDATE menu_router SET include_file = 'sites/all/modules/custom/my_custom_namespace/includes/foo.inc' WHERE path = 'access-denied'
เมื่อคิวรีเหล่านี้ทำงาน - ซึ่งจะใช้เวลาเพียงเสี้ยววินาทีเท่านั้น - เข้าชม admin / config / development / performance และล้างแคชเพื่อให้พา ธ เมนูสร้างขึ้นมาใหม่
registry_file
ตารางของคุณออกได้ซึ่งจะบังคับให้ drupal ทำการสแกนไฟล์ทั้งหมดอีกครั้งและสร้างตารางขึ้นใหม่