ฉันมีปัญหากับภาษาและไม่มีปัญหาเกี่ยวกับปลั๊กอิน migration_lookup ใน Drupal 8
ฉันมีข้อมูล json ที่แตกต่างกัน แต่ละอันเป็นภาษาที่แตกต่างกัน ตัวอย่างเช่น
json กับ de:
ข้อมูล:{ id: 12345, ชื่อ: 'Product 1 de', id: 123456, name: 'Product 2 de'}
json กับ en
ข้อมูล:{ id: 12345, ชื่อ: 'Product 1 en'}
แน่นอนว่า json นี้เป็นเพียงตัวอย่างที่ไม่ผ่านการตรวจสอบ
ฉันมีไฟล์ yaml การย้ายข้อมูล 2 ไฟล์ชื่อ migrate_plus.migration.data.yml และ migrate_plus.migration.data_de.yml
เวอร์ชันภาษาอังกฤษเป็นเวอร์ชันเริ่มต้นใน drupal
ในการเข้าร่วมเวอร์ชันกับ en ฉันใช้กระบวนการ:
นิด:
-
ปลั๊กอิน: การโยกย้าย_lookup
ที่มา: id
การโยกย้าย: ข้อมูล
no_stub: จริง
stub_id: ข้อมูล
ฉันใช้ no_stub: true เพราะฉันไม่ต้องการสร้างโหนด stub สำหรับเวอร์ชัน en ที่ไม่มีอยู่ ทุกอย่างทำงานได้ดี แต่เป็นครั้งแรก แต่ถ้าฉันต้องการอัปเดตการย้ายข้อมูล ฉันพบข้อผิดพลาด
[ข้อผิดพลาด] Drupal\Core\Database\IntegrityConstraintViolationException: SQLSTATE[23000]: การละเมิดข้อจำกัดด้านความสมบูรณ์: 1062 รายการซ้ำ '9424706c-e536-4a59-be13-ebb91367a1a9' สำหรับคีย์ 'node_field__uuid__value': INSERT INTO {node} (vid, type, uuid, langcode) ค่า (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3); อาร์เรย์
สำหรับรายการเวอร์ชันเด ในกรณีของฉัน ฉันไม่ต้องการสร้างรายการต้นขั้วใหม่สำหรับเวอร์ชันภาษาอังกฤษสำหรับผลิตภัณฑ์ 2 de ดังนั้นฉันจึงคิดว่าตัวเลือก no_stub จะไม่เป็นไร แม้ว่าฉันจะ migrate:rollback ฉันสังเกตเห็นว่าการโยกย้ายนี้จาก de ยังคงมีอยู่