เห็นใน feed มีการ share เครื่องมือในการทำ Database migration ชื่อว่า Atlas
สิ่งที่น่าสนใจคือ มีรูปแบบการทำงาน 2 แบบ คือ

  • Declarative
  • Versioned หรือ change-based migration

ตัวอย่างการทำงานแบบ Declarative แสดงดังรูป

มีขั้นตอนดังนี้

  • Schema loader
  • Schema inspection
  • Diffing and planning

โดย Atlas จะทำการตรวจสอบ schema ของ database
ระหว่าง schema ในการพัฒนาล่าสุด กับ schema ใน database ปลายทาง
จากนั้นจะทำการตรวจสอบการเปลี่ยนแปลงให้
และจะทำการ update ให้ตามการเปลี่ยนแปลงนั้น ๆ ให้เอง
ซึ่งถือว่าสะดวกมาก ๆ

โดยรูปแบบของ schema นั้น รองรับทั้ง SQL และ HCL (HashiCorp Configuration Language)
ซึ่ง HCL เป็นการจัดการเชิง declarative
ที่มีรูปแบบเดียวกับการจัดการ Infrastructure หรือ IaaS เช่น terraform นั่นเอง
ช่วยลด gap ตรงนี้ลงไป น่าสนใจกับแนวคิดมาก ๆ
และยังทำงานร่วมกับ Terraform ได้อีกด้วย

มาดูตัวอย่างการใช้งานแบบง่าย ๆ

มีขั้นตอนการใช้งานร่วมกับ docker ได้ดังนี้

ตัวอย่างของ HCL ที่ได้จากการ export ออกมาจาก database

จากนั้นทำการ migrate database โดย Atlas จะตรวจสอบการเปลี่ยนแปลงให้

ในตัวอย่างจะทำการเพิ่ม table ใหม่เข้ามา

เพียงเท่านี้ก็ใช้งานแบบง่าย ๆ ได้แล้ว
ดูง่ายดีนะ