Score:0

เปลี่ยนประเภท/กลุ่มของโหนด เก็บประเภท/กลุ่มเดิมไว้ในตารางฟิลด์

ธง cn

ฉันต้องเปลี่ยนบันเดิล/ประเภทของบางโหนด ฉันเหนื่อย https://www.drupal.org/project/convert_bundles แต่ไม่มีวิธีเลือกโหนดเพียงไม่กี่โหนดและเปลี่ยนบันเดิล/ประเภท ดังนั้นฉันจึงลองวิธีง่ายๆ:

  $node = โหนด::load(123);
  $node->set('type', 'new_type_name');
  $node->save();

ดูเหมือนว่าจะใช้งานได้: ประเภทเนื้อหาของโหนดเปลี่ยนไป แต่เมื่อฉันดูตารางฐานข้อมูลของฟิลด์ ยังคงมีชื่อประเภท/บันเดิลเก่าอยู่ในคอลัมน์ "บันเดิล" สำหรับแต่ละฟิลด์ของโหนดนี้ สิ่งนี้จะเปลี่ยนแปลงเฉพาะเมื่อฉันเปลี่ยนฟิลด์ในแบบฟอร์มแก้ไขโหนดและบันทึกเท่านั้น

คำถามของฉัน: มีใครทราบหรือไม่ว่ามีผลข้างเคียงใดๆ เมื่อมีเขตข้อมูลเชื่อมต่อกับโหนดโดยที่ตารางของเขตข้อมูลจัดเก็บชื่อบันเดิลที่ไม่ถูกต้องไว้

john Smith avatar
gr flag
ฉันเดาว่าคุณต้องเรียกใช้ cron และ field_cron() จะลบรายการฐานข้อมูลกำพร้าหรือไม่ https://drupal.stackexchange.com/questions/38328/clean-deleted-field-from-database
Tobias Krause avatar
cn flag
ฉันคิดว่ามีความเข้าใจผิด: ไม่มี orphan db-entries รายการในตารางฟิลด์เชื่อมต่ออย่างถูกต้องกับเอนทิตีที่มีอยู่ เฉพาะในรายการ db ของฟิลด์เท่านั้นที่ยังคงตั้งค่าบันเดิลเก่าของเอนทิตีนี้ และฉันสงสัยว่าความแตกต่างนี้ (รวมในตารางฐานเอนทิตีและรวมในตารางฟิลด์) สามารถสร้างปัญหาได้หรือไม่
Tobias Krause avatar
cn flag
ฉันรู้ว่าทำตามวิธีที่อธิบายไว้ที่นี่ http://www.noreiko.com/blog/changing-type-node พร้อมการปรับเปลี่ยนบางอย่าง ด้วยวิธีนี้ค่าบันเดิลจะได้รับการอัปเดตในทุกตารางฟิลด์ แต่ฉันปล่อยให้คำถามเปิดอยู่เพราะฉันสนใจคำตอบ
Score:0
ธง cn

As commented by @johnSmith, purging is the problem here, but there are two different purging processes. The first one is triggered when the field storage is removed and the entire table is marked as deleted and purged in cron runs, this should still work. The second one is triggered when a field is removed only from a bundle. Then the affected field items are marked as deleted and purged. This doesn't work any longer. But even if this doesn't bother you and you don't notice other side effects, I still would recommend to update every field table and leave the entity tables in a consistent state as described in the latest comment.

Tobias Krause avatar
cn flag
นี่ไม่ใช่ปัญหา: ไม่มีการลบ/ลบฟิลด์แต่อย่างใด ฟิลด์ของประเภทเอนทิตีต้นทางและประเภทเอนทิตีใหม่จะเหมือนกันในขณะนี้
4uk4 avatar
cn flag
ฉันได้อธิบายการดำเนินการภาคสนามสองรายการ หนึ่งรายการยังคงใช้งานได้และอีกรายการหนึ่งไม่ทำงาน ฉันจะคืนค่าการทำงานเต็มรูปแบบสำหรับอนาคต ไม่ใช่ตอนนี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา