หลังจากอัปเกรดจาก Drupal v9.1.7 เป็น v9.2.0 บนโหนดจำนวนมาก เค้าโครงแทนที่ตัวสร้างเลย์เอาต์แบบกำหนดเองถูกรีเซ็ตเป็นเลย์เอาต์เริ่มต้น ส่งผลให้ข้อมูลสูญหายจำนวนมาก ยิ่งไปกว่านั้น เหตุการณ์นี้เกิดขึ้นเฉพาะตอนแสดงสดไม่ใช่บนเวที และเพิ่งสังเกตเห็นในอีกไม่กี่วันต่อมา ฉันไม่รู้ว่าอะไรเป็นสาเหตุของปัญหา ลูกค้าค่อนข้างอารมณ์เสีย และฉันต้องกู้คืนเลย์เอาต์แทนที่อย่างรวดเร็วและเฉพาะเจาะจงจากสแน็ปช็อต DB ในคืนก่อนการอัปเดต (และปล่อยให้ข้อมูลที่เหลือไม่ถูกแตะต้อง)
จนถึงตอนนี้ฉันรู้สองสิ่ง:
- โหนดที่ได้รับผลกระทบทั้งหมดมี
node.change
การประทับเวลาที่ตรงกับเวลาของการปรับใช้การอัปเดต
- บนโหนดที่ได้รับผลกระทบทั้งหมด
node__layout_builder_layout
ถูกตัดให้เหลือหนึ่งส่วน (เหมือนกับค่าเริ่มต้น เค้าโครงที่ไม่แทนที่)
- ในโหนดที่ได้รับผลกระทบทั้งหมด เฉพาะการแก้ไขครั้งล่าสุดเท่านั้นที่จะหายไป โดยไม่ต้องสร้างรหัสการแก้ไขใหม่
- เลย์เอาต์แทนที่มักจะประกอบด้วยแบบกำหนดเองซึ่งไม่สามารถใช้ซ้ำได้
block_content
บล็อก บล็อกทั้งหมดยังคงมีอยู่ในฐานข้อมูล
ฉันต้องการทราบ:
- ฉันจะตรวจสอบได้อย่างไรว่าโหนดมีเค้าโครงแทนที่ หรือกำลังใช้เค้าโครงเริ่มต้นของตัวสร้างเค้าโครง (หากเป็นไปได้ด้วยแบบสอบถาม SQL ธรรมดา โดยไม่มี PHP)
- ฉันต้องกู้คืนอะไรอีกนอกจาก
node__layout_builder_layout
ตาราง (สมมติว่าบล็อกเนื้อหาแบบกำหนดเองที่ใช้โดยโครงร่างการแทนที่ยังคงมีอยู่) เพื่อกู้คืนโครงร่างการแทนที่ของโหนด
- ฉันสามารถใช้ SQL อย่างประหยัดได้หรือไม่
โดยที่ a <> b
หรือ SQL โดยที่ a = b
กับ ก
และ ข
เป็นเนื้อหาหยดของ node__layout_builder_layout.layout_builder__layout_section
?