การกำหนดค่าการนำเข้าสำหรับบางรายการดูเหมือนจะล้มเหลว ฉันจะแก้ไขปัญหานี้ได้อย่างไร
หลังจากซิงโครไนซ์คอนฟิกูเรชันจาก dev เป็น staging ฉันคาดหวังว่าการเปลี่ยนแปลงทั้งหมดจะถูกนำเข้าและสำหรับข้อความที่จะแสดงขึ้นโดยให้คำแนะนำว่า "ไม่มีการเปลี่ยนแปลงการกำหนดค่าที่จะนำเข้า"
นำเข้าการเปลี่ยนแปลงส่วนใหญ่แล้ว แต่ฉันเหลือหกรายการซึ่งดูเหมือนว่าจะนำเข้าไม่สำเร็จ หรืออย่างน้อยก็อย่าล้างออกจากรายการสำหรับการนำเข้า
ฉันไม่เข้าใจว่าทำไมการกำหนดค่าที่ใช้งานอยู่จึงไม่ได้รับการอัปเดตโดยการจัดฉาก
ในการนำเข้าทั้งหมดฉันได้พยายามนำเข้าแต่ละรายการแยกกันโดยไม่ประสบความสำเร็จ
เช่นเดียวกับการใช้ UI ได้ลอง drush cim ด้วย Drush ยืนยันว่านำเข้าการกำหนดค่าสำเร็จแล้ว แต่ถ้าฉันเรียกใช้ drush cim อีกครั้งไฟล์ 6 ไฟล์ก็ยังคงอยู่
เหตุใดจึงปรากฏว่าการนำเข้าล้มเหลวและฉันควรทำอย่างไรเพื่อแก้ไข การกำหนดค่าที่ใช้งานอยู่ของฉันสับสนหรือไม่?
ภาพหน้าจอและรหัสเพื่อแสดงปัญหา
ผ่าน UI

ผ่าน Drush
[easable]:sync$ drush cim +------------+-----------------------------------------------------+-----------+ | Collection | Config | Operation | +------------+-----------------------------------------------------+-----------+ | | block.block.schoolpwa_subtheme_bottommenu | Update | | | block.block.schoolpwa_subtheme_mainnavigation | Update | | | block.block.mainmenu2 | Update | | | block.block.websiteswitcher | Update | | | core.entity_view_display.node.page.default | Update | | | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update | +------------+-----------------------------------------------------+-----------+ Import the listed configuration changes? (yes/no) [yes]: > [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_bottommenu. [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_mainnavigation. [notice] Synchronized configuration: update block.block.mainmenu2. [notice] Synchronized configuration: update block.block.websiteswitcher. [notice] Synchronized configuration: update core.entity_view_display.node.page.default. [notice] Synchronized configuration: update media_bulk_upload.media_bulk_config.pdf_bulk_upload. [notice] Finalizing configuration synchronization. [success] The configuration was imported successfully. [easable]:sync$ drush cim
+------------+-----------------------------------------------------+-----------+
| Collection | Config | Operation |
+------------+-----------------------------------------------------+-----------+
| | block.block.schoolpwa_subtheme_bottommenu | Update |
| | block.block.schoolpwa_subtheme_mainnavigation | Update |
| | block.block.mainmenu2 | Update |
| | block.block.websiteswitcher | Update |
| | core.entity_view_display.node.page.default | Update |
| | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update |
+------------+-----------------------------------------------------+-----------+
Import the listed configuration changes? (yes/no) [yes]:
>
คำตอบ
ฉันพบว่าสิ่งนี้เป็นเพราะการกำหนดค่าในไดเรกทอรีการซิงค์ของคุณไม่ถูกต้อง ฉันเดาว่านี่เป็นปัญหาเกี่ยวกับ dev และสภาพแวดล้อมในเครื่องของคุณเช่นกันไม่ใช่แค่การจัดเตรียม
ฉันพบว่าสาเหตุของปัญหานี้มักเกิดจากหนึ่งในสองสิ่ง:
1. ไฟล์การกำหนดค่าถูกจัดการด้วยตนเองและไม่สามารถกำหนดค่าในไฟล์ได้
ตัวอย่างเช่นการดูที่ pastebin ของคุณการเปลี่ยนแปลงสำหรับcore.entity_view_display.node.page.default.ymlคือการลบฟิลด์ที่สร้างขึ้นจากรายการฟิลด์ที่ซ่อนอยู่บนจอแสดงผลนั้น อย่างไรก็ตามไม่มีการกำหนดค่าวิธีการแสดงฟิลด์ ไม่สามารถแสดงฟิลด์และไม่ได้ซ่อน เพื่อรักษาความสมบูรณ์ของการกำหนดค่าระบบจะตั้งค่าฟิลด์เป็นค่าเริ่มต้นเป็นซ่อนเมื่อไม่ได้อยู่ในตำแหน่งใดที่หนึ่ง
2. มีการเรียกใช้การอัปเดตฐานข้อมูลการอัปเดตที่เปลี่ยนแปลงการกำหนดค่า แต่การกำหนดค่าไม่ได้ถูกส่งออกในสภาพแวดล้อมการพัฒนาหลังจากการอัปเดต
ตัวอย่างเมื่อดูที่ Pastebin ของคุณดูเหมือนว่ามีการเพิ่มตัวเลือกการกำหนดค่าใหม่ (พร้อมค่าเริ่มต้นที่เหมาะสม) นอกจากนี้ยังมีลักษณะเช่นโมดูลการเปลี่ยนแปลงจากการทำงานกับtrue
และfalse
ไปและ1
0
ในการแก้ไขปัญหานี้:
อันดับแรกไปที่สภาพแวดล้อมการพัฒนาหลักของคุณ จากนั้นรับฐานข้อมูลบันทึกล่าสุดของคุณล้างแคชและปรับใช้ (อัปเดตฐานข้อมูลจากนั้นนำเข้าการกำหนดค่าของคุณ) ผลลัพธ์ควรเป็นสิ่งเดียวกับที่คุณเห็นในการจัดเตรียมกล่าวคือการกำหนดค่าบางอย่างดูเหมือนจะไม่ได้รับการซิงค์อย่างสมบูรณ์ สิ่งนี้เป็นสิ่งที่คาดหวัง (ด้วยเหตุผลที่อธิบายไว้ข้างต้น) ถัดไปส่งออกการกำหนดค่าคอมมิตและปรับใช้อีกครั้ง
เพื่อหลีกเลี่ยงปัญหานี้ในอนาคต:
- อย่าจัดการไฟล์กำหนดค่าโดยตรง หากคุณทำเช่นนั้นให้ทดสอบการกำหนดค่าในเครื่องเพื่อให้แน่ใจว่าคุณทำถูกต้อง (รวมถึงหลังจากแก้ไขข้อขัดแย้งในการผสานในไฟล์กำหนดค่า)
- ส่งออกการกำหนดค่าทุกครั้งหลังจากรันการอัปเดตฐานข้อมูล บางครั้งการอัปเดตจะเปลี่ยนการกำหนดค่า