วิธีการย้ายจากสภาพแวดล้อมการทดสอบไปยังสภาพแวดล้อมการผลิต?


46

การโอนย้ายมาจากสภาพแวดล้อมท้องถิ่นไปยังสภาพแวดล้อมการผลิต สภาพแวดล้อมการผลิตใช้เวลาพอสมควรและสร้างบทความจำนวนมาก

เพื่อเพิ่มสิ่งใหม่ ๆ ในเว็บไซต์ของฉันฉันเพิ่มธีมที่กำหนดเองและติดตั้ง CCK, Views และโมดูลอื่น ๆ ในสภาพแวดล้อมการทดสอบในพื้นที่ของฉัน เมื่อสภาพแวดล้อมการทดสอบภายในเครื่องเสร็จสิ้นฉันจะย้ายข้อมูลไปยังสภาพแวดล้อมการผลิตได้อย่างไรโดยไม่ทำลายเนื้อหาของฐานข้อมูล

คำตอบ:


34

นี่เป็นปัญหาที่ไม่สำคัญที่เกือบทุกคนมีคำตอบที่แตกต่างกันสำหรับ: ไม่มีวิธี Drupal ที่เป็นที่ยอมรับในการจัดการการแสดงละครไปจนถึงการผลิต Dries Buytaert, คนที่ทำงานแสดง Drupal, ทำให้มันเป็นหนึ่งของความคิดริเริ่มที่สำคัญของ Drupal 8 แน่นอนว่า Drupal 7 เพิ่งเปิดตัวดังนั้นก่อนที่จะเกิดผล

ปัญหาสามารถแบ่งออกเป็นสองประเด็นแยกกัน:

  • การกำหนดค่าลำดับขั้น (ตัวแปรชนิดเนื้อหาฟิลด์มุมมอง ฯลฯ )
  • การจัดเตรียมเนื้อหา (โหนดผู้ใช้ ฯลฯ )

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

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

นอกจากนี้ Drupal ไม่ได้ใช้ตัวระบุ (UUIDs) สากลสำหรับเนื้อหา: ทุกครั้งที่มีการเพิ่มโหนดหรือผู้ใช้ ID จะเพิ่มขึ้นทีละหนึ่ง ดังนั้นสิ่งที่อาจเป็นโหนด 45 บนไซต์การพัฒนาของคุณอาจเป็นโหนด 90 บนไซต์การผลิตของคุณ

น่าเสียดายที่ฉันไม่มีทางออกที่ดีสำหรับเรื่องนี้: เนื้อหาการแสดงละครเป็นจุดอ่อนที่แท้จริงของ Drupal สิ่งที่ฉันทำเป็นการส่วนตัวเพิ่มเนื้อหาในเว็บไซต์ผลิตเท่านั้น หากลูกค้าต้องการดูว่าเนื้อหามีลักษณะอย่างไรก่อนที่จะเผยแพร่ฉันจะตั้งค่าโคลนของไซต์ที่ใช้งานจริงซึ่งเข้าถึงได้เฉพาะลูกค้า จากนั้นเมื่อได้รับการอนุมัติจะมีการเปลี่ยนแปลงเดียวกันกับการผลิตโดยตรง

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


คุณสามารถย้ายเนื้อหาโดยใช้ uuid และ uuid_features ได้ แต่มันยังไม่น่าเชื่อถือ
Jeremy French

7

ในกระบวนการของเรา

  1. เรามีเชลล์สคริปต์ที่ดึงฐานข้อมูลจากการผลิต
  2. เราใช้ฮัดสันเพื่อสร้างสาขา dev / การจัดเตรียมของเราใหม่เพื่อซิงค์สาขาสดและสาขา dev

    เนื่องจากเราใช้ Git ทุกงานที่เราทำมีสาขาของตัวเองแล้วเมื่อผ่านไปยัง QA เราจึงรวมมันเพื่อให้เป็นมาสเตอร์เซิร์ฟเวอร์ของเราสำหรับการทดสอบการถดถอย

    เมื่อปรมาจารย์พร้อมแล้วเราจะทำการปล่อยการทดสอบRelease Serverซึ่งเป็นแบบจำลองของการถ่ายทอดสด (การกำหนดค่าฮาร์ดแวร์และอื่น ๆ )

  3. เราใช้Featureโมดูลเพื่อปรับใช้การกำหนดค่า บางสิ่งยังไม่รองรับคุณสมบัติดังนั้นเราจึงใช้ hook_update_N จากนั้นเรียกใช้ updatedb.php หรือdrush -vd updb

  4. หลังจากปล่อยให้ดำเนินการคุณสมบัติย้อนกลับ ( drush fra --yes) เพื่อย้อนกลับคุณสมบัติ overriden ทั้งหมด
  5. เนื่องจากเราใช้ Boost (ย้ายไปยังวานิช) และ Memcache เราต้องล้างแคช ( drush cc all)

    เรากำลังใช้ rsync เพื่อซิงค์ภาพ / วิดีโอ ฯลฯ ของเรา ...


คุณช่วยอธิบายรายละเอียดขั้นตอนที่ 2 - การใช้ Git ฉันเข้าใจว่าเราสามารถผสานการเปลี่ยนแปลงระบบไฟล์ใด ๆ ได้อย่างง่ายดาย แต่คุณจะมั่นใจได้อย่างไรว่าฐานข้อมูลสมบูรณ์ นอกจากนี้อะไรคือจุดประสงค์ในการใช้ "คุณสมบัติ" (เพื่อปรับใช้การกำหนดค่า) ที่นี่ ขอขอบคุณ!
Raj Pawan Gumdal

2

ในการโยกย้ายจากเซิร์ฟเวอร์ XAMPP ไปยังเซิร์ฟเวอร์อื่นฉันทำตามคำแนะนำบนเว็บไซต์นี้

ตรวจสอบให้แน่ใจว่าคุณเก็บโครงสร้างเดียวกันบนเซิร์ฟเวอร์ที่ใช้งานจริงเช่นเดียวกับในเซิร์ฟเวอร์การพัฒนาของคุณ ฉันยังต้องแก้ไขไฟล์บางไฟล์ในแดชบอร์ดผู้ดูแลระบบของ Drupal ซึ่งอยู่ที่: admin / config / media / file-system

ตรวจสอบให้แน่ใจว่าพา ธ ระบบไฟล์สาธารณะและไดเร็กทอรีชั่วคราวของคุณมีตำแหน่งที่ถูกต้อง


สิ่งนี้ไม่เคยพูดถึงปัญหา "การผสาน" คำถามระบุอย่างชัดเจนว่าการผลิตมีข้อมูลเนื้อหาที่จะต้องไม่บุบสลายในขณะที่การปรับปรุงจากเซิร์ฟเวอร์การแสดงละครจะต้องมีการผสานในการผลิต
Raj Pawan Gumdal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.