Score:3

เหตุใดการติดตั้งจากการกำหนดค่าที่มีอยู่จึงล้มเหลว

ธง cn

ฉันมีปัญหาในการติดตั้งไซต์ drupal จากการกำหนดค่าที่มีอยู่ ฉันลองสองวิธีต่อไปนี้:

ตัวเลือกที่ 1: นำเข้าการกำหนดค่าโดยเปลี่ยน UID:

  • ดรัชซีเอ็กซ์ บนเว็บไซต์ที่มีอยู่
  • เว็บไซต์ drush:ติดตั้ง เพื่อติดตั้งไซต์ใหม่
  • drush cset system.site uuid 478e7e74-fea3...... เพื่อตั้งค่า UUID บนไซต์ใหม่ให้เท่ากับไซต์ที่มีอยู่
  • ซิม บนเว็บไซต์ใหม่

ผลลัพธ์:

  การนำเข้าล้มเหลวเนื่องจากสาเหตุต่อไปนี้:

  ข้อผิดพลาดที่ไม่คาดคิดระหว่างการนำเข้าด้วยการดำเนินการลบสำหรับ taxonomy.vocabulary.tags: พยายามสร้างเนื้อหาของฟิลด์ที่ไม่มีอยู่ในโหนดประเภทเอนทิตี
  ข้อผิดพลาดที่ไม่คาดคิดระหว่างการนำเข้าด้วยการดำเนินการลบสำหรับ Shortcut.set.default: พยายามสร้างเนื้อหาของฟิลด์ที่ไม่มีอยู่ในโหนดประเภทเอนทิตี
  ข้อผิดพลาดที่ไม่คาดคิดระหว่างการนำเข้าด้วยการดำเนินการลบสำหรับ contact.form.personal: พยายามสร้างเนื้อหาของฟิลด์ที่ไม่มีอยู่ในโหนดประเภทเอนทิตี

.... (มีข้อผิดพลาดเหล่านี้อีกมาก แต่ฉันถอดไว้ที่นี่เพื่อให้อ่านง่ายขึ้น)

ตัวเลือกที่ 2: ระบุการกำหนดค่าที่มีอยู่แล้วระหว่างการติดตั้ง

ไซต์ drush:ติดตั้ง --existing-config.php ด้วย config จากไซต์ที่มีอยู่ที่มีอยู่ในไดเร็กทอรี config ของไซต์ใหม่

ผลลัพธ์:

โปรไฟล์ที่เลือกมีการใช้งาน hook_install() ดังนั้นจึงทำได้
ไม่ได้ติดตั้งจากการกำหนดค่า
Score:3
ธง in

ฉันคิดว่าตัวเลือกที่ 1 เป็นวิธีแก้ปัญหาแฮ็กมากกว่าวิธีที่แนะนำ ฉันจะหลีกเลี่ยงมันแทนตัวเลือก 2

Re: ตัวเลือกที่ 2 ล้มเหลว ข้อความแสดงข้อผิดพลาดค่อนข้างชัดเจน - คุณไม่สามารถใช้ --existing-config ตัวเลือกที่มีโปรไฟล์ที่ใช้ตะขอติดตั้ง

จาก บันทึกการเปลี่ยนแปลงแนะนำความสามารถในการติดตั้งจากการกำหนดค่าที่มีอยู่:

หากโปรไฟล์ใช้การติดตั้งการกำหนดค่า hook_install() ไม่ได้รับการสนับสนุน สิ่งนี้อาจได้รับการแก้ไขใน #2982052: อนุญาตให้ติดตั้ง hook ในโปรไฟล์ที่ติดตั้งจากการกำหนดค่า. วิธีแก้ไขที่เป็นไปได้ในตอนนี้คือเปลี่ยนโปรไฟล์การติดตั้งให้น้อยที่สุดหรือทำตามตัวเลือกที่ 2 และสร้างโปรไฟล์ใหม่ที่ไม่ได้ใช้ hook

Drupal 8: ติดตั้งไซต์จากการกำหนดค่าที่มีอยู่ แนะนำวิธีการเปลี่ยนการติดตั้งของคุณเพื่อใช้โปรไฟล์ขั้นต่ำแทนโปรไฟล์ปัจจุบันของคุณ สปอยเลอร์: คุณเพียงแค่ต้องทำการอัปเดตสองครั้งกับ core.extension.yml ไฟล์ในไดเร็กทอรีการกำหนดค่าของคุณ:

  1. เปลี่ยน ข้อมูลส่วนตัว ค่าของคีย์เป็น น้อยที่สุด
  2. ภายใต้ โมดูล คีย์ แทนที่คีย์โปรไฟล์ที่มีอยู่ของคุณด้วย น้อยที่สุด. (โดยทั่วไปโปรไฟล์จะอยู่ใกล้ด้านล่างสุดของรายการ)
Extect avatar
cn flag
ขอบคุณมาก! อย่างน้อยก็อนุญาตให้ฉันติดตั้งจากการกำหนดค่าที่มีอยู่ อย่างไรก็ตามฉันต้องเปลี่ยน core.extension.yml ก่อนเรียกใช้ drush cim ทุกครั้งเพื่อให้ใช้งานได้ มีวิธีแก้ไขเช่นกันหรือไม่?
sonfd avatar
in flag
นั่นไม่จำเป็น คุณควรจะสามารถติดตั้งไซต์ด้วย `core.extension.yml` ที่เปลี่ยนแปลง และส่งออกการกำหนดค่าของคุณ (`drush cex`) หลังจากการติดตั้งเสร็จสิ้น หลังจากนี้คุณควรมีไซต์ปกติโดยไม่จำเป็นต้องดูแลเป็นพิเศษ
Extect avatar
cn flag
ฉันมีไซต์ dev (พร้อมมาตรฐานโปรไฟล์การติดตั้ง) ที่ฉันต้องการติดตั้งอย่างสมบูรณ์ใน prod (ซึ่งเป็นไปได้โดยการเปลี่ยน core.extension.yml ด้วยคำใบ้ของคุณ) ตอนนี้ เมื่อฉันต้องการเปลี่ยนการกำหนดค่าใน dev และพุชไปที่ prod ฉันจะทำ `drush cex` ใน dev และ `drush cim` ใน prod แต่จะไม่ทำงานถ้าไม่เปลี่ยน `core.extension yml` อีกแล้ว ฉันทำอะไรผิด?
sonfd avatar
in flag
หลังจากที่คุณทำการติดตั้งใหม่บน prod คุณต้องนำฐานข้อมูลนั้น (และการกำหนดค่า) กลับไปที่อินสแตนซ์ dev ของคุณ ดูเหมือนว่าคุณกำลังพยายามทำการติดตั้งใหม่ 2 ครั้งแยกกัน (ครั้งแรกใน dev และครั้งที่สองใน prod) จากนั้นปรับใช้โค้ดระหว่างกันราวกับว่าเป็นไซต์เดียวกัน AFAIK ไม่รองรับสิ่งนี้
Extect avatar
cn flag
ตกลง. ขอบคุณ! ฉันแค่ต้องการกำจัดเนื้อหาทดสอบทั้งหมดของฉันใน dev โดยทำการติดตั้งใหม่สำหรับผลิตภัณฑ์ อาจเป็นความผิดพลาดของฉันที่ไม่ซิงค์สองทันที

โพสต์คำตอบ

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