ทีมของฉันประสบปัญหาคล้ายกัน เราใช้ git เพื่อสร้างโค้ดที่เรากำหนดเองเช่นปลั๊กอินและธีมที่เราเขียน เราใช้นักแต่งเพลงเพื่อจัดการการพึ่งพาเช่นปลั๊กอินที่เราไม่ได้เขียน เราตรวจสอบไฟล์ composer.json และ composer.lock เป็น git เพื่อให้ทุกคนซิงค์กัน นักพัฒนาซอฟต์แวร์แต่ละคนคาดว่าจะดึงสาขาหลัก git และทำงานcomposer update
บน playpens ของพวกเขาบ่อยครั้งเพื่อให้ทุกคนยังคงทันสมัย
ในฐานข้อมูลผู้พัฒนาส่วนใหญ่สนใจเกี่ยวกับการกำหนดค่าและเรามักจะใช้WP-CLIเพื่อให้การกำหนดค่าในการซิงค์ ตัวอย่างเช่นเรามีเชลล์สคริปต์ที่รันคำสั่ง WP-CLI เพื่อเปิดใช้งานหรือปิดใช้งานปลั๊กอินในแต่ละโฮสต์ ปลั๊กอินบางตัวจะใช้กับโฮสต์การจัดเตรียมเนื้อหาของเราเท่านั้นดังนั้นสคริปต์สามารถทำงานบนโฮสต์ใด ๆ และจะเปิดใช้งานการตั้งค่าที่เหมาะสมบนโฮสต์นั้นเท่านั้น การกำหนดค่าบางอย่างที่ใช้เวลานานเกินไปในการเขียนสคริปต์นั้นเป็นเพียงเอกสารและทำซ้ำด้วยตนเองหากจำเป็น
นอกจากนี้เรายังมีสคริปต์ perl ที่จะโคลนฐานข้อมูลจากเซิร์ฟเวอร์ staging เนื้อหาของเราไปยัง QA หรือโฮสต์ dev อย่างสมบูรณ์ ผู้พัฒนาสามารถใช้สิ่งนี้เป็นระยะหากพวกเขาต้องการเนื้อหาปัจจุบันทั้งหมด แต่โดยทั่วไปนั้นสำคัญน้อยกว่าการมีรหัสและการกำหนดค่า สคริปต์ทำงานเหล่านี้:
- การถ่ายโอนข้อมูล mySQL ของฐานข้อมูลเซิร์ฟเวอร์ staging เนื้อหาเปลี่ยนชื่อตารางโหลดลงในฐานข้อมูลของเซิร์ฟเวอร์เป้าหมาย
- ใช้ wp-cli เพื่อเปลี่ยนการอ้างอิงไปยังเซิร์ฟเวอร์ staging ภายในฐานข้อมูลเพื่ออ้างถึงเซิร์ฟเวอร์เป้าหมาย
- ซิงค์ไดเรกทอรีอัพโหลดบนเซิร์ฟเวอร์เป้าหมายด้วยการอัปโหลดเซิร์ฟเวอร์เนื้อหาชั่วคราว
มีโซลูชันที่มีแนวโน้มสำหรับการกำหนดเวอร์ชันฐานข้อมูลที่กำลังมาอย่างรวดเร็ว VersionPressและMergebotเป็นสองสิ่งที่ฉันรู้และอาจมีบางอย่าง
ฉันเขียนรายละเอียดทางเทคนิคเพิ่มเติมเกี่ยวกับวิธีที่เราตั้งค่า WordPress ให้ทำงานกับ git และนักแต่งเพลงในบล็อกของฉัน จำเป็นต้องใช้กับ WordPress core ในไดเรกทอรีของตัวเองเพื่อทำการแยกอย่างชัดเจนระหว่างรหัสที่เราต้องการรักษาใน git และ WordPress core เราปฏิบัติต่อ WordPress เองว่าเป็นการพึ่งพาและจัดการมันด้วย Composer