สองเซ็นต์ของฉัน: ฉันไม่คิดว่ามันเป็นความคิดที่ดี GIT ทำอะไรบางอย่างเช่น "การจัดเก็บภาพรวมของชุดของแฟ้มที่จุดที่แตกต่างกันในช่วงเวลาที่" เพื่อให้คุณสามารถที่ดีที่สุดที่ใช้ GIT สำหรับสิ่งที่ต้องการ แต่ไม่ได้หมายความว่าคุณควร GIT ได้รับการออกแบบมาเพื่อเก็บซอร์สโค้ดดังนั้นคุณจะพลาดฟังก์ชั่นส่วนใหญ่ไปและคุณจะทำการซื้อขายประสิทธิภาพจำนวนมากเพื่อความสะดวกเพียงเล็กน้อย
ให้ฉันสมมติว่าเหตุผลหลักที่คุณคิดเกี่ยวกับสิ่งนี้คือ "เก็บสำเนาของข้อมูลและรหัสในการซิงค์" และนั่นหมายความว่าคุณกังวลว่ารหัสรุ่น 2.0 ของคุณต้องการสคีมาฐานข้อมูลที่แตกต่างจากรุ่น 1.0 . วิธีแก้ปัญหาที่ง่ายกว่าคือการจัดเก็บสคีมาฐานข้อมูลเป็นชุดของสคริปต์ SQL พร้อมCREATE
คำสั่งตามซอร์สโค้ดในที่เก็บ Git ของคุณ จากนั้นส่วนหนึ่งของขั้นตอนการติดตั้งของคุณคือการเรียกใช้สคริปต์เหล่านั้นบนเซิร์ฟเวอร์ฐานข้อมูลที่ติดตั้งไว้ก่อนหน้านี้
เนื้อหาจริงของCREATE
ตารางjust -d เหล่านั้นไม่มีส่วนเกี่ยวข้องกับเวอร์ชันของซอร์สโค้ดของคุณ ลองนึกภาพคุณติดตั้งซอฟต์แวร์รุ่น 1.0 ของคุณบนเซิร์ฟเวอร์ A และบนเซิร์ฟเวอร์ B ซึ่งใช้ใน บริษัท ต่าง ๆ โดยทีมงานที่แตกต่างกัน หลังจากผ่านไปหลายสัปดาห์เนื้อหาของตารางจะแตกต่างกันมากแม้ว่าแบบแผนจะเหมือนกันทุกประการ
เนื่องจากคุณต้องการสำรองเนื้อหาของฐานข้อมูลฉันขอแนะนำให้คุณใช้สคริปต์สำรองที่ติดแท็กดัมพ์สำรองด้วยเวอร์ชันปัจจุบันของซอฟต์แวร์ที่ดัมพ์เป็นของ สคริปต์ควรอยู่ในที่เก็บ GIT (เพื่อให้สามารถเข้าถึงสตริงเวอร์ชันซอร์สโค้ด) แต่การดัมพ์เองไม่ได้อยู่ในระบบควบคุมเวอร์ชัน
แก้ไข :
หลังจากอ่านโพสต์ต้นฉบับที่กระตุ้นคำถามฉันคิดว่านี่เป็นความคิดที่น่าสงสัยมากยิ่งขึ้น จุดสำคัญคือmysqldump
คำสั่งเปลี่ยนสถานะปัจจุบันของฐานข้อมูลเป็นชุดINSERT
คำสั่งSQL และ GIT สามารถกระจายข้อมูลเหล่านั้นเพื่อให้ได้รับแถวตารางที่อัปเดตเท่านั้น
mysqldump
ส่วนหนึ่งเป็นเสียงตั้งแต่นี้เป็นหนึ่งในวิธีการสำรองข้อมูลที่ระบุไว้ในเอกสารของ MySQL ส่วน GIT เป็นที่ที่ผู้เขียนไม่ทราบว่าเซิร์ฟเวอร์ฐานข้อมูลเก็บล็อกธุรกรรมเพื่อที่จะกู้คืนจากการเกิดปัญหารวมทั้ง MySQL กำลังใช้บันทึกนี้ไม่ใช่ GIT ที่คุณควรสร้างการสำรองข้อมูลเพิ่มเติมสำหรับฐานข้อมูลของคุณ สิ่งนี้มีข้อได้เปรียบอันดับแรกและสำคัญที่สุดที่คุณสามารถหมุนหรือล้างบันทึกหลังจากการกู้คืนแทนที่จะทำให้พื้นที่เก็บข้อมูล GIT กลายเป็นอินฟินิตี้และอื่น ๆ ...