ฉันได้นำเอาโรงเรียนความคิดสองแห่งที่นี่ (โรงเรียนแห่งความคิดที่ 3 โดยการทำฐานข้อมูลแตกต่างฉันจะไม่พูดถึงเพราะความซับซ้อนค่อนข้างสูง)
1) ปรับใช้โดยวางฐานข้อมูลการผลิตและนำเข้า mysqldump ของฐานข้อมูลการพัฒนา เลือกรัน regex find / replace ก่อนหน้านี้ในลิงก์สัมบูรณ์แบบ hard-coded ใด ๆ ที่อ้างอิง URL dev ใน SQL dump หลังจากนำเข้า dev db ไปยัง prod ให้เรียกใช้คำสั่ง SQL (โดยปกติผ่านทางสคริปต์) โดยอัตโนมัติเพื่อเปลี่ยนการตั้งค่าที่แตกต่างกันสำหรับ prod กว่า dev (เช่นคุณอาจมีตัวแปรในตารางที่การตั้งค่าการเชื่อมต่อสำหรับการเชื่อมต่อกับระบบภายนอก เปลี่ยนเป็นชี้ไปที่ระบบภายนอกที่แยงแทนที่เวอร์ชัน dev)
2) ใช้โมดูลคุณสมบัติตามที่ระบุไว้โดย budda สำหรับการตั้งค่าผู้ดูแลระบบและใช้โมดูลการส่งออกโหนดสำหรับการส่งออก / นำเข้าเนื้อหาร่วมกับโมดูลลบทั้งหมด ดังนั้นเวิร์กโฟลว์คือ:
- ใช้ node_export และคุณสมบัติเพื่อส่งออกโหนด / คุณสมบัติไปยังไฟล์
- การควบคุมเวอร์ชันทางเลือก (และหวังว่า)
- โหลดไฟล์บนระบบ prod
- ใช้ drush หรือส่วนต่อประสานผู้ดูแลระบบเพื่อโหลดคุณสมบัติ
- ใช้ drush delete-all หรือส่วนติดต่อผู้ดูแลระบบเพื่อลบโหนดทั้งหมดของประเภทที่คุณต้องการนำเข้า
- ใช้ drush ne-import หรือส่วนต่อประสานผู้ดูแลระบบเพื่อนำเข้าโหนดจากไฟล์โหนดที่คุณส่งออก
One note ฉันขอแนะนำให้ใช้เวิร์กโฟลว์มาตรฐานโดยที่เนื้อหามีทิศทางเดียวเท่านั้น Dev -> Prod or Prod -> Dev (ฉันชอบอันนี้)
ฉันได้ทำสิ่งนี้แล้วและกำลังทำสิ่งนี้ในระบบขนาดใหญ่บางแห่งที่มีผลลัพธ์ที่ดีพอสมควร แต่จะมีหลายวิธีในการแบ่งแอปเปิ้ลนี้ออกมาเสมอเลือกวิธีที่เหมาะสมที่สุดสำหรับคุณ