การทำให้ฐานข้อมูล WP ซิงค์กับนักพัฒนาหลายรายโดยใช้ git


33

ฉันกำลังทำงานเพื่อปรับปรุงกระบวนการทำงานคอมไพล์ของฉันตามที่ใช้กับโครงการพัฒนา WordPress ของฉัน บ่อยครั้งที่เมื่อพัฒนาระบบการจัดการเนื้อหาฉันจะสร้างเซิร์ฟเวอร์การพัฒนา (เช่นhttp://dev.finalsitename.com) ที่มีประเภทโพสต์ที่กำหนดเองและ taxonomies ที่จะใช้ในเวอร์ชันการผลิต สิ่งนี้ทำให้ลูกค้าของฉันเริ่มเพิ่มเนื้อหาลงในไซต์

ขณะที่พวกเขากำลังทำงานนี้ฉันมักจะสร้างรูปลักษณ์และความรู้สึกรวมถึงการเขียนโปรแกรม / ปลั๊กอินที่กำหนดเองที่จะใช้กับสภาพแวดล้อม localhost ของฉัน เพื่อให้แน่ใจว่าฉันจะไม่เขียนทับการอัปเดตใด ๆ ของพวกเขาฉันมักจะดึงสำเนาของฐานข้อมูลลงและแทนที่ของฉัน อย่างไรก็ตามมีบางครั้งที่ฉันเพียงแค่ต้องกระโดดเข้าไปในพื้นที่ WP admin และเปลี่ยนการตั้งค่าหรือสิ่งอื่นเล็ก ...

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

นักพัฒนารายอื่นกำลังทำอะไรเพื่อรักษาฐานข้อมูลของตนให้ตรงกันในขณะที่ยังคงอนุญาตให้นักพัฒนาหลายคน (และลูกค้า / ผู้ผลิตเนื้อหา) ทำงานในโครงการเดียวกันได้

คำตอบ:


12

มี 3 ตัวเลือกจากที่ง่ายที่สุด ->

  1. ใช้ฐานข้อมูลระยะไกลเดียวเท่านั้นที่คุณเชื่อมต่อด้วยการสำรองข้อมูลจำนวนมาก ด้วยวิธีนี้คุณเพียงแค่ต้องกังวลเกี่ยวกับไฟล์ไม่ใช่ db

  2. ใช้ฟังก์ชั่นการนำเข้าและส่งออกที่มีอยู่ใน WordPress และส่งไปยังการควบคุมเวอร์ชันของคุณลงในรูต wp (เช่นในโฟลเดอร์ใหม่) แน่นอนว่าใช้เวลาไม่กี่นาที แต่มันก็ง่ายและคุณสามารถทำให้มันเป็นอัตโนมัติได้ แต่ที่สำคัญกว่านั้นคือมันจะกลายเป็นส่วนหนึ่งของการควบคุมเวอร์ชัน

  3. ใช้สคริปต์การอัปเดตที่กำหนดเองเพื่อเวอร์ชันการซิงค์ฐานข้อมูลจริง ฉันไม่รู้ว่าคุณสามารถจัดการกับ git ได้อย่างไรเพราะมันเป็นเพียงสคริปต์และไม่รู้จริงๆว่าเกิดอะไรขึ้นฉันรู้ว่ามีเครื่องมือของบุคคลที่สามที่ทำโฆษณาและฟรี ( http: // www) liquibase.org/ )


1

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

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


นอกจากนี้หนึ่งง่ายนี่stackoverflow.com/questions/825787/...
ค่าการกลั่น

1

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

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

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

หาก ณ จุดใดก็ตามที่คุณต้องการแยกการทดสอบแบบสดและข้อมูล WIP จากนั้นใช้การทดสอบแบบสดและสาขาการพัฒนาในที่เก็บของคุณ

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