การจัดเตรียมไซต์คุณจะจัดการการอัพเดทข้อมูลให้ตรงกันในฐานข้อมูลได้อย่างไร


11

เป็นที่ยอมรับกันโดยทั่วไปว่านักพัฒนาควรทดสอบการอัปเดตผ่านไซต์ staging ก่อนปล่อยไปยังเซิร์ฟเวอร์ live อย่างไรก็ตามเมื่อการปรับปรุงการพัฒนาต้องการการแก้ไขใน Wordpress DB สิ่งต่าง ๆ มีความซับซ้อนเนื่องจากผู้ใช้ในไซต์สดจะอัพเดต DB ด้วย

การไหล (งง) เพียงอย่างเดียวที่ฉันสามารถจินตนาการได้มีดังต่อไปนี้:

  1. ทดสอบบนโลคัลเซิร์ฟเวอร์ (WAMP, XAMP ฯลฯ )
  2. เมื่อพร้อมที่จะปรับใช้ให้ตั้งค่าไซต์สดในโหมดการบำรุงรักษา
  3. สำรองไซต์สด (ทำสำเนา sqldump ฯลฯ )
  4. สร้างโคลนของไซต์สดที่ถูกล็อคไปยังไซต์การแสดงละคร
  5. อัปโหลดการแก้ไขจากสภาพแวดล้อมท้องถิ่นไปยังไซต์การแสดงละคร
  6. ทดสอบไซต์จัดเตรียม
  7. ผลักดันไซต์การแสดงละครสด
  8. ลบโหมดการบำรุงรักษา

ข้อเสียของการไหลข้างต้น:

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

ฉันสงสัยว่าจะมีวิธีที่ดีกว่าและอัตโนมัติกว่านี้เพื่อให้บรรลุหรือไม่

คุณคิดอย่างไร?

EDIT ได้รับการเสนอการแก้ไขตามที่ร้องขอในอดีต แต่ไม่มีผู้ใดเสนอวิธีการแก้ไขที่ชัดเจน:


@ Dan9 ฉันคิดว่ามันจะปลอดภัยกว่าหากจะลดการเข้าถึงเว็บไซต์สดให้น้อยที่สุด เป็นเรื่องปกติที่จะแก้ไขเลย์เอาต์ในเว็บไซต์จริงหรือไม่? บางทีฉันอาจกังวลมากเกินไป!
Riccardo

คุณสามารถสร้างอัปเดตลบเรียกคืนได้ คุณกังวลเรื่องอะไร
SarahCoding

ดังนั้นจึงเป็นเรื่องปกติที่จะอัปโหลดเค้าโครงโดยไม่มีการทดสอบในไซต์การแสดงละคร? เวิร์กโฟลว์ทั่วไปของคุณคืออะไร (local / staging / live)
Riccardo

ลองดูที่ปลั๊กอิน WP-ซิงค์-DB
SarahCoding

เชื่อถือได้หรือไม่? คุณใช้เครื่องมือนี้หรือไม่?
Riccardo

คำตอบ:


2

ผู้ให้บริการโฮสติ้งรุ่นใหม่ที่ให้ความสำคัญกับ WordPress โดยทั่วไปจะมีเครื่องมือในการลดความเจ็บปวดนี้ ฉันใส่ลูกค้าของฉันไว้ในแพนธีออนซึ่งมีเวิร์กโฟลว์ที่เปิดใช้งานระบบ Git ที่เรียบร้อยซึ่งโค้ดจะเลื่อนขึ้น (จากการพัฒนาไปสู่การผลิตจนถึงการผลิต) และสิ่งต่างๆในฐานข้อมูลจะเลื่อนลง (ตรงกันข้ามจากรหัส) การคัดลอกฐานข้อมูลจากการผลิตไปยังการจัดเตรียมเป็นเพียงคลิกเดียวกับอินเตอร์เฟซของพวกเขา หากมีการปฏิบัติตามขั้นตอนนี้สิ่งนี้จะช่วยขจัดปัญหาฐานข้อมูลที่ใช้ในการผลิตทำให้ฉันสามารถทดสอบการเปลี่ยนแปลงของฐานข้อมูลการผลิตในการพัฒนา

ไม่มีใครที่จะต้องใช้ Pantheon - คุณสามารถนำแนวทางที่คล้ายกันในกระบวนการของคุณโดยใช้เครื่องมือของคุณเอง (Git + ปลั๊กอินการโคลนนิ่ง DB เช่น WP Migrate DB) ฉันเพิ่งพบว่าวิธีนี้ใช้งานได้ดีสำหรับฉัน

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


ผู้ให้บริการของฉันอนุญาตให้สร้างไซต์ staging แบบคลิกเดียวและ push-to-live พร้อมตัวเลือกที่ละเอียดบนตารางที่ถูกเขียนใหม่ แต่ฉันยังต้องล็อคผู้ใช้ในขณะที่การทดสอบขั้นสุดท้ายทำงานเนื่องจากส่วนหนึ่งของการปรับใช้กำลังฉีดข้อมูลด้านนักพัฒนาในฐานข้อมูล (ตัวอย่างหน้าเลย์เอาต์ของผู้สร้างไซต์จะถูกเก็บไว้ในฐานข้อมูล) ทำให้ผู้ใช้หยุดการอัปเดตในช่วงนี้ หากคุณมีความคิดที่ดีขึ้นว่าจะบรรลุขั้นตอนนี้ได้อย่างไรฉันยินดีที่จะแบ่งปันกับคุณ!
Riccardo

BTW คุณทำผ่าน dev / staging / live flow ทุกครั้งที่มีการปรับเปลี่ยนเล็กน้อยหรือไม่? ตัวอย่างเช่นการเปลี่ยนเลย์เอาต์ของหน้าภายในตัวแก้ไขเล็กน้อยหรือแก้ไขเมนู
Riccardo

ใช่ - ไฟล์ผ่าน dev -> staging -> prod ทุกครั้ง (บางทีคุณสามารถปิดใช้งาน staging หรือ dev - จำไม่ได้) Dev สำหรับทีม dev การจัดเตรียมสำหรับ QA หรือการอนุมัติ / นักออกแบบ / ลูกค้าก่อนที่จะผลักดันให้แยง
คณิตศาสตร์มอนทรีออล

1

ดูที่VersionPressซึ่งนำการกำหนดรุ่น GIT มาสู่กระบวนการทั้งหมด (ไฟล์และฐานข้อมูล)

ตามที่อธิบายไว้ในเว็บไซต์:

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


1
ฉันจะตรวจสอบความน่าเชื่อถือของเครื่องมือนี้ได้อย่างไร
Riccardo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.