ในขณะที่คำตอบของฉันอาจไม่ยาวเท่ากับรีมัส แต่ฉันคิดว่านี่เป็นทางออกที่ดีจริงๆ ฉันยังไม่ได้ตั้งค่าในการผลิตดังนั้น YMMV *
Liquibase
โดยพื้นฐานแล้วมันเป็นไฟล์ XML ที่คุณทำการเปลี่ยนแปลงสคีมากับฐานข้อมูลของคุณเป็นองค์ประกอบใหม่ภายในไฟล์ XML ตัวอย่างเช่น:
<createTable tableName="department">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
มีไวยากรณ์ที่ครบถ้วนสมบูรณ์ดังนั้นคุณสามารถทำสิ่งใดก็ได้ที่คุณต้องการในฐานข้อมูลของคุณ
คุณยังระบุในการติดตั้ง Liquibase ฐานข้อมูลที่คุณต้องการให้เป็นเวอร์ชัน จากนั้นคุณ "เรียกใช้" .xml ด้วย Java executable ที่รวมอยู่ (ไฟล์ jar) สิ่งนี้จะสร้างการเปลี่ยนแปลงที่ระบุใน XML ไปยังฐานข้อมูลของคุณอีกครั้ง
ตัว kicker ที่แท้จริงคือคุณเก็บไฟล์ XML นี้ไว้ในโฟลเดอร์ versioned เดียวกับรหัสของคุณ ดังนั้นในกรณีของฉันนั่นคือ Git ฉันมีไฟล์ XML นี้ในโฟลเดอร์โครงการ (ระดับเดียวกับ /.git) จากนั้นเมื่อใดก็ตามที่ฉันสลับสาขาไฟล์ XML จะเปลี่ยนเป็นเวอร์ชันสาขานั้นและฉันจะเรียกใช้ไฟล์. jar และฐานข้อมูลของฉันจะสะท้อนสาขานั้น
* หมายเหตุ: ฉันยังไม่ได้ติดตั้งให้เสร็จเพราะฉันมีปัญหาในการเชื่อมต่อ Java กับ SQL Server ต้องการไดรเวอร์ jdbc บางตัวและฉันไม่ได้อยู่ในอารมณ์ ดังนั้นไมล์สะสมของคุณอาจแตกต่างกันไป