Score:0

วิธีกรอง idlist ในบรรทัดคำสั่งเมื่อนำเข้าข้อมูลผ่านการย้ายข้อมูล

ธง ng

ฉันรู้ว่าฉันขาดอะไรไปมากที่นี่ ฉันมีปลั๊กอินต้นทางการย้ายข้อมูลที่กำหนดเองซึ่งต้องการการส่งคืนเคียวรี ()

ถ้าฉันสอบผ่าน --idlist=123 พารามิเตอร์ที่มีการนำเข้าแบบสอบถามนี้ยังคงทำงานบนโหนดทั้งหมดเนื่องจากไม่มีวิธีจำกัดแบบไดนามิก ฉันพลาดอะไรไป

การย้ายข้อมูลควรจะสอบถาม D7 db ดั้งเดิมสำหรับประเภทเนื้อหา (เหตุการณ์) จากนั้นฉันจำเป็นต้องอัปเดตฟิลด์ของผลลัพธ์แต่ละรายการในการเตรียมแถวของฉัน () วิธีนี้ใช้ได้ผล ยกเว้นว่าคิวรีจะส่งคืนเหตุการณ์ทั้งหมดเสมอ ฉันคิดว่าฉันเข้าใจความต้องการ/วัตถุประสงค์ของฟังก์ชัน query() ผิด

ป้อนคำอธิบายรูปภาพที่นี่

Score:1
ธง fr

นี่เป็นปัญหาที่ทราบระหว่างการย้ายข้อมูล มีปัญหาเปิดอยู่ใน Drupal.org แต่ยังไม่ปิด แต่ตอนนี้เรามีวิธีแก้ปัญหานี้แล้ว

แบบสอบถามฟังก์ชันสาธารณะ () {
    // แฮ็คเพื่อรับ idlist เพื่อกรองในบรรทัดคำสั่ง
    $idlist = NULL;
    foreach ($_SERVER['argv'] เป็น $arg) {
      ถ้า (strpos($arg, '--idlist') === 0) {
        รายการ (, $idlist) = ระเบิด ('=', $arg);
        $idlist = ระเบิด (',', $idlist);
        หยุดพัก;
      }
    }
$query = $this->select('โหนด', 'n')
  -> ฟิลด์ ('n')
  ->orderBy('นิด', 'ASC');

ถ้า ($idlist) {
  $query->condition('n.nid', $idlist, 'IN');
}

ส่งคืน $query;
}

จากนั้นใช้ดังนี้:

drush โยกย้าย: นำเข้า example_node_articles --update --idlist=1234
 [ประกาศ] ประมวลผล 1 รายการ (สร้าง 0 รายการ อัปเดต 1 รายการ ล้มเหลว 0 รายการ ละเว้น 0 รายการ) - เสร็จสิ้นด้วย 'example_node_articles'

แหล่งที่มา : https://www.drupal.org/project/migrate_tools/issues/3107400#comment-13428024

โพสต์คำตอบ

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